다른 배열에서 인덱스를 지정하여 액세스하려는 특정 값이 배열 x
입니다.다차원 배열을 다른 배열로 효율적으로 인덱싱
예를 들어, x
는
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
이며 지수 I가 X의 배열 [1,2]을 돌려주는 함수를 원하는
idxs = np.array([[1,2], [4,3], [3,3]])
NX2 배열의 X [아르 4,3], x [3,3] 또는 [7, 23, 18]. 다음 코드는 그 트릭을 수행하지만, 아마도 for 루프를 피함으로써 커다란 배열의 속도를 높이고 싶습니다.
import numpy as np
def arrayvalsofinterest(x, idx):
output = np.zeros(idx.shape[0])
for i in range(len(output)):
output[i] = x[tuple(idx[i,:])]
return output
if __name__ == "__main__":
xx = np.arange(25).reshape(5,5)
idxs = np.array([[1,2],[4,3], [3,3]])
print arrayvalsofinterest(xx, idxs)
아니면, 즉 어레이의 도면을 이용하여보다 효율적 'X [idxs [: 0] idxs [:, 1]]'? 자세한 정보를 보려면 여기를 클릭하십시오. http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#purely-integer-array-indexing – Divakar
@Divakar 하하, 페이지를 새로 고칠 때마다 그냥 쓰여졌습니다 :) – Alex