Есть ли хороший способ в numpy
, чтобы получить индексные данные о том, где каждый элемент в array1
находится в array2
?Найти сопоставление индексов между двумя массивами numpy
Пример:
array1 = np.array([1, 3, 4])
array2 = np.arange(-2, 5, 1, dtype=np.int)
np.where(array1[0] == array2)
# (array([3]),)
np.where(array1[1] == array2)
# (array([5]),)
np.where(array1[2] == array2)
# (array([6]),)
Я хотел бы сделать
np.where(array1 == array2)
# (array([3 5 6]),)
ли что-то подобное возможно? Мы гарантируем, что все записи в array1
могут быть найдены в array2
.
Awesome! Я играю с каждым в отдельности, но не понимал, что ключ должен состоять в их объединении. Есть ли какая-либо польза для любого из двух подходов, которые вы предлагаете? – pingul
@pingul Я бы пошел с 'np.searchsorted', если' array2' уже отсортирован. Добавление скоростей. – Divakar
Спасибо большое! Оба массива всегда будут отсортированы. – pingul