Найти индекс вектора внутри матрицы в Python - PullRequest
1 голос
/ 11 марта 2020

Учитывая матрицу (numpy массив) A и вектор v.

A = np.array([[5,0],[1,-2],[0,2],[-1,3],[1,2]])
v = np.array([0,2])

Каков наилучший способ получить индекс вектора v в матрице A (в в этом случае нужно получить 2).

Ответы [ 2 ]

1 голос
/ 11 марта 2020

Если под best вы имеете в виду fast , после тщательного эксперимента пользователь hpaulj указал , что np.flatnonzero - гораздо более быстрая альтернатива np.argwhere. Вы можете использовать его следующим образом:

np.flatnonzero((v==A).all(1))[0]

Вывод:

2
1 голос
/ 11 марта 2020

Это делает это:

np.argwhere((v == A).all(1))
Out[82]: array([[2]], dtype=int64)
...