pythonarraysnumpy

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


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?


Solution

  • 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]]