我有兩個數組。在numpy中用3d數組索引一個二維數組
「a」,一個2d numpy數組。
import numpy.random as npr
a = array([[5,6,7,8,9],[10,11,12,14,15]])
array([[ 5, 6, 7, 8, 9],
[10, 11, 12, 14, 15]])
「idx」,一個三維numpy數組,構成三個索引變體,我想用索引「a」。
idx = npr.randint(5, size=(nsamp,shape(a)[0], shape(a)[1]))
array([[[1, 2, 1, 3, 4],
[2, 0, 2, 0, 1]],
[[0, 0, 3, 2, 0],
[1, 3, 2, 0, 3]],
[[2, 1, 0, 1, 4],
[1, 1, 0, 1, 0]]])
現在我想指數「」三用「IDX」索引次如下獲取對象:
array([[[6, 7, 6, 8, 9],
[12, 10, 12, 10, 11]],
[[5, 5, 8, 7, 5],
[11, 14, 12, 10, 14]],
[[7, 6, 5, 6, 9],
[11, 11, 10, 11, 10]]])
天真「一[IDX]」不工作。任何想法如何做到這一點? (我使用Python 3.4和NumPy的1.9)
切切實實的這個已經解釋了很多次。你必須告訴索引到第二維,所以它會像'a [indx,[[[0],[1]]]]'... – seberg 2014-10-17 08:53:58