У меня есть два массива, a1 и a2. Предположим, len(a2) >> len(a1)
, и что a1 является подмножеством a2.
Я бы хотел быстрый способ вернуть индексы a2 всех элементов в a1. Очевидно, что это требует много времени:
from operator import indexOf
indices = []
for i in a1:
indices.append(indexOf(a2,i))
Конечно, это занимает много времени, когда а2 велико. Я мог бы также использовать numpy.where () вместо этого (хотя каждая запись в a1 будет появляться только один раз в a2), но я не уверен, что это будет быстрее. Я мог бы также пройти большой массив только один раз:
for i in xrange(len(a2)):
if a2[i] in a1:
indices.append(i)
Но я уверен, что есть более быстрый, более «тупой» способ - я просмотрел список «тупых» методов, но не могу найти ничего подходящего.
Большое спасибо заранее,
D