3D numpy 배열을위한 가장 효율적인 방법을 찾으려고합니다. 이는 테스트 용도로만 데이터의 하위 집합입니다.3d 어레이에서 효율적인 너비 슬라이싱
in_arr =np.array([[[0,1,2,5],[2,3,2,6],[0,1,3,2]],[[1,2,3,4],[3,1,0,5],[2,4,0,1]]])
indx =[[3,1,2],[2,0,1]]
명시된대로 indx에서 값을 가져와야합니다. 예를 들어, indx [0] [0]은 3이므로 in_arr [0] [0]의 세 번째 요소 인이 경우 5를 찾고 있습니다.
다음과 같은 코드가 있습니다. 그게 필요하지만, 시간 복잡성은 n^2이며, 나는 그것에 대해 만족하지 못합니다.
list_in =[]
for x in range(len(indx)):
arr2 = []
for y in range(len(indx[x])):
arr2.append(in_arr[x][y][indx[x][y]])
#print in_arr[x][y][indx[x][y]]
list_in.append(arr2)
print list_in
대용량 데이터 집합에 대해 동일한 작업을 수행하는 매우 빠르고 효율적인 방법을 찾고 있습니다.
[인덱싱 문서] (https://docs.scipy.org/doc/numpy-1.13.0/reference/arrays.ar.indexing.html) 실제 답변을 원하시면 예제를 조금 개선하십시오. 예 : 작업에 대한 완전한 예상 출력을 추가하십시오. – sascha