私はゼロのnumpy配列を持っています。具体的には、2x3x4 だとします。
x = np.zeros((2,3,4))
そして、0 から 3 までのランダム整数 (x の 3 次元のインデックス) の 2x3 配列があるとします。
>>> y = sp.stats.distributions.randint.rvs(0, 4, size=(2,3))
>>> y
[[2 1 0]
[3 2 0]]
次の割り当てを効率的に行うにはどうすればよいですか (編集: for ループを使用せず、任意の数の次元と各次元の任意の数の要素で x に対して機能するもの)?
>>> 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.]]])
ありがとう、ジェームズ