У меня два массива 1D, 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.