# Python Arrays

Array's are the foundation for all data science in Python. Arrays can be multidimensional, and all elements in an array need to be of the same type, all integers or all floats, for example.

## Advantages of using an Array

• Arrays can handle very large datasets efficiently
• Computationally-memory efficient
• Faster calculations and analysis than lists
• Diverse functionality (many functions in Python packages). With several Python packages that make trend modeling, statistics, and visualization easier.

## Basics of an Array

In Python, you can create new datatypes, called arrays using the NumPy package. NumPy arrays are optimized for numerical analyses and contain only a single data type.

You first import NumPy and then use the `array()` function to create an array. The `array()` function takes a list as an input.

``````import numpy
my_array = numpy.array([0, 1, 2, 3, 4])
print(my_array)
``````
``````[0, 1, 2, 3, 4]
``````

The type of `my_array` is a `numpy.ndarray`.

``````print(type(my_array))
``````
``````<class 'numpy.ndarray'>
``````

## Array Examples

### Example of creating an Array

In the below example, you will convert a list to an array using the `array()` function from NumPy. You will create a list `a_list` comprising of integers. Then, using the `array()` function, convert it an array.

``````import numpy as np

a_list = [1, 2, 3, 4]
a_list
``````
``````[1, 2, 3, 4]
``````
``````an_array = np.array(a_list)
an_array
``````
``````array([1, 2, 3, 4])
``````

### Example of an Array operation

In the below example, you add two numpy arrays. The result is an element-wise sum of both the arrays.

``````import numpy as np

array_A = np.array([1, 2, 3])
array_B = np.array([4, 5, 6])

print(array_A + array_B)
``````
``````[5 7 9]
``````

### Example of Array indexing

You can select a specific index element of an array using indexing notation.

``````import numpy as np

months_array = np.array(['Jan', 'Feb', 'March', 'Apr', 'May'])
print(months_array)
``````
``````Apr
``````

You can also slice a range of elements using the slicing notation specifying a range of indices.

``````print(months_array[2:5])
``````
``````['March', 'Apr', 'May']
``````

## Interactive Example of a List to an Array

In the below example, you will import `numpy` using the alias `np`. Create `prices_array` and `earnings_array` arrays from the lists `prices` and `earnings`, respectively. Finally, print both the arrays.

``````# IMPORT numpy as np
import numpy as np

# Lists
prices = [170.12, 93.29, 55.28, 145.30, 171.81, 59.50, 100.50]
earnings = [9.2, 5.31, 2.41, 5.91, 15.42, 2.51, 6.79]

# NumPy arrays
prices_array = np.array(prices)
earnings_array = np.array(earnings)

# Print the arrays
print(prices_array)
print(earnings_array)
``````

When you run the above code, it produces the following result:

``````[170.12  93.29  55.28 145.3  171.81  59.5  100.5 ]
[ 9.2   5.31  2.41  5.91 15.42  2.51  6.79]
``````