Is there a NumPy function to return the first index of something in an array?

ghz 1years ago ⋅ 6920 views

Question

I know there is a method for a Python list to return the first index of something:

>>> xs = [1, 2, 3]
>>> xs.index(2)
1

Is there something like that for NumPy arrays?


Answer

Yes, given an array, array, and a value, item to search for, you can use np.where as:

itemindex = numpy.where(array == item)

The result is a tuple with first all the row indices, then all the column indices.

For example, if an array is two dimensions and it contained your item at two locations then

array[itemindex[0][0]][itemindex[1][0]]

would be equal to your item and so would be:

array[itemindex[0][1]][itemindex[1][1]]