NumPy is a homogeneous data structure (all elements are of the same type). It is significantly faster than Python's built-in lists because it uses optimized C language style storage where actual values are stored at contiguous locations (not object reference). It also supports vectorized computations. It supports vectorized operations (no need for loops).
Create NumPy Arrays
To start using NumPy, import it as follows:
import numpy as np
NumPy array’s objects allow us to work with arrays in Python. The array object is called ndarray. NumPy arrays are created using the array() function.
import numpy as np
# Creating a 1D array
x = np.array([1, 2, 3])
# Creating a 2D array
y = np.array([[1, 2], [3, 4]])
# Creating a 3D array
z = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(x)
print(y)
print(z)
Output
[1 2 3] [[1 2] [3 4]] [[[1 2] [3 4]] [[5 6] [7 8]]]
Attributes of NumPy Arrays
NumPy arrays have attributes that provide information about the array:
shape: Returns the dimensions of the array.dtype: Returns the data type of the elements.ndim: Returns the number of dimensions.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape)
print(arr.dtype)
print(arr.ndim)
Output
(2, 3) int64 2
Operations on NumPy Arrays
NumPy supports element-wise and matrix operations, including addition, subtraction, multiplication, and division:
import numpy as np
# Element-wise addition
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
print(x + y) # Output: [5 7 9]
# Matrix multiplication
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print(np.dot(a, b))
Output
[5 7 9] [[19 22] [43 50]]
Dimensions in NumPy Arrays
NumPy arrays can have multiple dimensions, allowing users to store data in multilayered structures.
| Name | Example |
|---|---|
| 0D (zero-dimensional) | Scalar - A single element |
| 1D (one-dimensional) | Vector- A list of integers. |
| 2D (two-dimensional) | Matrix- A spreadsheet of data |
| 3D (three-dimensional) | Tensor- Storing a color image |
NumPy Arrays vs Python Lists
- Fixed Size: Arrays have a fixed size, while lists can dynamically grow.
- Homogeneous Data: Arrays require uniform data types; lists can store mixed types.
- Performance: Arrays are faster due to their optimized implementation.
- Memory Efficiency: Arrays use contiguous memory blocks, unlike lists.