NumPy Array Indexing
Summary: in this tutorial, you’ll learn how to access elements of a numpy array using indices.
Like a list, you can use the square bracket notation ([]
) to access elements of a numpy array.
NumPy array indexing on 1-D arrays
Along a single axis, you can select elements using indices. The first element starts with index 0, the second element starts with index 1, and so on.
Besides the non-negative indices, you can use negative indices to locate elements. For example, the last element has an index -1, the second last element has an index -2, and so on.
The following example shows how to access elements of a one-dimensional array:
import numpy as npa = np.arange(0, 5)
print(a)
print(a[0])
print(a[1])
print(a[-1])
Code language: Python (python)
Output:
[0 1 2 3 4]
0
1
4
3
Code language: Python (python)
In this example:
- The a[0] returns the first element (0)
- The a[1] returns the second element (1)
- The a[-1] returns the last element (4)
- The a[-2] returns the second last element (3)
NumPy array indexing on 2-D arrays
With 2-D and multidimensional arrays, you can select elements as you do with 1-D arrays but for each dimension (or axis). For example:
import numpy as npa = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(a.shape)
print(a[0]) # [1 2 3]
print(a[1]) # [4 5 6]
print(a[0, 0]) # 1
print(a[1, 0]) # 4
print(a[0, 2]) # 3
print(a[1, 2]) # 6
print(a[0, -1]) # 3
print(a[1, -1]) # 6
Code language: Python (python)
Output:
(2, 3)
[1 2 3]
[4 5 6]
1
4
3
6
3
6
Code language: Python (python)
In this example, the numpy array a has the shape (2,3) therefore it has two axes:
- The first axis has 2 elements (2 lists)
- The second axis has three elements (3 numbers)
The following explains how the array indexing works:
- The a[0] returns the first element of the first axis, which is [1 2 3].
- The a[1] returns the second element of the first axis, which is [4 5 6]
- The a[0, 0] = 1: 0 selects the first element of the first axis ([1 2 3]) and the first element of the second axis.
- The a[1, 0] = 4: 1 selects the second element of the first axis ([4 5 6]) and 0 selects the first element of the second axis.
- The a[0, 2]) = 3: 0 selects the first element of the first axis ([1 2 3]) axis and 2 selects the third element of the second axis.
- The a[1, 2] = 6: 1 selects the second element of the first axis ([4 5 6]) and 2 selects the third element of the second axis.
- The a[0, -1] = 3: 0 selects the first element of the first axis ([1 2 3]) and -1 selects the last element of the second axis.
- The a[1, -1] = 6: 1 selects the second element of the first axis ([1 2 3]) and -1 selects the last element of the second axis.
NumPy array indexing on 3-D arrays
The following example creates a 3-D numpy array:
import numpy as npa = np.array([
[[1, 2], [3, 4], [5, 6]],
[[5, 6], [7, 8], [9, 10]],
])
print(a.shape)
Code language: Python (python)
Output:
(2, 3, 2)
Code language: Python (python)
The array has three axes.
- The first axis has 2 elements (2 lists of lists of numbers)
- The second axis has 3 elements (3 lists of numbers)
- The third axis has 2 elements (2 numbers)
For example:
import numpy as npa = np.array([
[[1, 2], [3, 4], [5, 6]],
[[5, 6], [7, 8], [9, 10]],
])
print(a[0, 0, 1]) # 2
Code language: Python (python)
The following expression returns 2:
a[0,0,1]
Code language: Python (python)
The first number 0 selects the first element of the first axis so it returns:
[[1, 2], [3, 4], [5, 6]]
Code language: Python (python)
The second number 0 selects the first element of the second axis so it returns:
[1, 2]
Code language: Python (python)
The third number (1) selects the second element of the third axis which returns 2.
Summary
- Use square bracket notation [] with an index to access elements of a numpy array.
- Use zero and positive indexes to start selecting from the beginning of the array.
- Use negative indexes to start selecting from the end of the array.