Ваш вопрос является общим и связан с функцией numpy.where
.
Давайте рассмотрим пример simple :
A=np.array([[3,2,1],[4,5,1]])
# array([[3, 2, 1],
# [4, 5, 1]])
print(np.where(A==1))
# (array([0, 1]), array([2, 2]))
Как видите, функция np.where
возвращает кортеж. Первый элемент (это массив numpy) кортежа - это индекс строки / строки, а второй элемент (это снова массив numpy) - это индекс столбца.
np.where(A==1)[0] # this is the first element of the tuple thus,
# the numpy array containing all the row/line
# indices where the value is = 1.
#array([0, 1])
Выше указано, что в первой (0) и второй (1) строке матрицы есть значение = 1 A
.
Далее:
np.where(A==1)[0][0]
0
возвращает индекс первой строки , содержащей значение = 1. 0 - это первая строка матрицы A