두 개의 1D 배열 x & y가 있는데, 하나는 다른 배열보다 작습니다. x에서 y의 모든 원소의 인덱스를 찾으려고합니다.Numpy : 한 배열의 모든 요소에 대해 다른 배열의 색인을 찾으십시오.
나는 이것을하기위한 두 가지 간단한 방법을 찾았습니다. 첫 번째 방법은 느리고 두 번째 방법은 메모리 집약적입니다.
느린 방법
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에 있다고 가정하지 않으면 보너스 포인트가됩니다.
아, 훌륭한 코드 조각. Joe 코드를 일반화 해 주셔서 감사합니다! – Chris