l'affectation de valeurs dans un tableau numpy

J'ai un tableau numpy de zéros. Pour le concret, supposons qu'il 2x3x4:

x = np.zeros((2,3,4))

et supposons que j'ai un 2x3 tableau d'entiers aléatoires de 0 à 3 (l'indice de la 3ème dimension de x).

>>> y = sp.stats.distributions.randint.rvs(0, 4, size=(2,3))
>>> y
[[2 1 0]
 [3 2 0]]

Comment dois-je faire les affectations suivantes efficacement (edit: quelque chose qui n'est pas utiliser pour des boucles et des œuvres de x avec un nombre quelconque de dimensions et de n'importe quel nombre d'éléments dans chaque dimension)?

>>> x[0,0,y[0,0]]=1
>>> x[0,1,y[0,1]]=1
>>> x[0,2,y[0,2]]=1
>>> x[1,0,y[1,0]]=1
>>> x[1,1,y[1,1]]=1
>>> x[1,2,y[1,2]]=1
>>> x
array([[[ 0.,  0.,  1.,  0.],
        [ 0.,  1.,  0.,  0.],
        [ 1.,  0.,  0.,  0.]],

       [[ 0.,  0.,  0.,  1.],
        [ 0.,  0.,  1.,  0.],
        [ 1.,  0.,  0.,  0.]]])

Grâce,
James

OriginalL'auteur user1857751 | 2012-11-27