我有兩個numpy的陣列,A
和indices
。numpy的匹配索引尺寸
A
具有尺寸m x n x 10000. indices
具有尺寸m x n x 5(從argpartition(A, 5)[:,:,:5]
輸出)。 我想得到一個m×n×5的數組,其中包含對應於indices
的A
的元素。
嘗試
indices = np.array([[[5,4,3,2,1],[1,1,1,1,1],[1,1,1,1,1]],
[500,400,300,200,100],[100,100,100,100,100],[100,100,100,100,100]])
A = np.reshape(range(2 * 3 * 10000), (2,3,10000))
A[...,indices] # gives an array of size (2,3,2,3,5). I want a subset of these values
np.take(A, indices) # shape is right, but it flattens the array first
np.choose(indices, A) # fails because of shape mismatch.
動機
我試圖得到A[i,j]
5個最大值爲每i<m
,j<n
使用np.argpartition
因爲陣列可以得到相當大的排序順序。