Course Content
Ultimate NumPy
3. Commonly used NumPy Functions
Ultimate NumPy
Multidimensional Indexing
Now that you are able to access elements in 1D arrays, it’s time to learn indexing in higher dimensional arrays.
2D Arrays Indexing
Let’s first have a look at a 2D array example:

This is a 2x3
array which means that it consists of 2
1D arrays which lie along axis 0, and each of these 1D arrays have 3
elements which lie along axis 1.
The images below will clarify positive and negative indexing in 2D arrays:


As you can see, indexing along each of the axes is absolutely identical to indexing in 1D arrays.
Accessing Elements in 2D Arrays
In 1D arrays we accessed its elements via specifying the index of this element in square brackets. If we did the same in 2D arrays, we would retrieve a 1D array at the specified index which actually may be exactly what we need.
In case we want to retrieve a particular element of an inner 1D array, however, we should specify an index of the 1D array (along axis 0) and the index of its element (along axis 1), e.g, array[0, 1]
. We could also write array[0][1]
as we do with Python list
, however it less efficient, since it performs the search twice for each index instead of once.
Note
Once again, if a specified index is out of bonds, then an
IndexError
is thrown, so be cautious of that.
Let’s have a look at an example:
3D Arrays Indexing
Here is a 3D array example:

This is a 3x3x3
array which means that it consists of 3 2D arrays which lie along axis 0, each of these 2D arrays consist of 3 1D arrays which lie along axis 1, and each of these 1D arrays have 3 elements lying along axis 2.
The images below will clarify positive and negative indexing in 3D arrays:


Accessing Elements in 3D Arrays
In order to access a 2D array you should specify a single index in the square brackets, e.g, array[1]
. If you want to access a 1D array you should specify two indices, e.g., array[1, 0]
. In order to access a single element of a 1D array you should you use three indices, e.g., array[1, 0, 0]
.
Here is an example:
Task
- Use only positive indices to retrieve the top left element of the
identity_matrix
and store the result infirst_diagonal_element
. - Use only positive indices to retrieve the second element of the second 1D array of the
identity_matrix
and store the result insecond_diagonal_element
. - Use only negative indices to retrieve the bottom right element of the
identity_matrix
and store the result inthird_diagonal_element
.
Everything was clear?