У меня есть два одномерных массива, x и y, один меньше другого. Я пытаюсь найти индекс каждого элемента y в x.
Я нашел два наивных способа сделать это: первый - медленный, а второй - требовательный к памяти.
indices= []
for iy in y:
indices += np.where(x==iy)[0][0]
xe = np.outer([1,]*len(x), y)
ye = np.outer(x, [1,]*len(y))
junk, indices = np.where(np.equal(xe, ye))
Есть ли более быстрый способ или подход с меньшим объемом памяти? В идеале поиск должен использовать тот факт, что мы ищем не одну вещь в списке, а множество вещей, и поэтому он немного более поддается распараллеливанию. Бонусные баллы, если вы не предполагаете, что каждый элемент y на самом деле находится в x.