Array indexing
We have already seen that one may index arrays by combinations of slices and integers, this is the basic slicing technique. There are, however, many more possibilities, which allow for a variety of ways to access and modify array elements.
Indexing with Boolean arrays
It is often useful to access and modify only parts of an array, depending on its value. For instance, one might want to access all the positive elements of an array. This turns out to be possible using Boolean arrays, which act like masks to select only some elements of an array. The result of such an indexing is always a vector. For instance, consider the following example:
B = array([[True, False], [False, True]]) M = array([[2, 3], [1, 4]]) M[B] # array([2,4]), a vector
In fact, the M[B]
call is equivalent to M.flatten()[B]
. One may then replace the resulting vector by another vector. For instance, one may replace all the elements by zero (refer to section Broadcasting...