Альтернативой выбору первого элемента из np.where () является использование выражения генератора вместе с перечислением, например:
>>> import numpy as np
>>> x = np.arange(100) # x = array([0, 1, 2, 3, ... 99])
>>> next(i for i, x_i in enumerate(x) if x_i == 2)
2
Для двумерного массива можно сделать:
>>> x = np.arange(100).reshape(10,10) # x = array([[0, 1, 2,... 9], [10,..19],])
>>> next((i,j) for i, x_i in enumerate(x)
... for j, x_ij in enumerate(x_i) if x_ij == 2)
(0, 2)
Преимущество этого подхода состоит в том, что он прекращает проверку элементов массива после обнаружения первого совпадения, тогда как np.where проверяет все элементы на совпадение. Выражение генератора будет быстрее, если в массиве есть совпадение.