2016-08-02 14 views
3

私の目標インデックスに対応する以下のインデックスのリスト[2 4 3 4]があります。私はコードのtargets = np.zeros((features.shape[0], 5))の次の行で0の行列を作成しています。理想的には、行列が
([0,0,1,0,0], [0,0,0,0,1], [0,0,0,1,0], [0,0,0,0,1])特定のnumpy行列の列を更新する

答えて

4

ようになり、私はすべてを一度に特定のインデックスを更新し、ループのためにすることなく、1にそれらの値を設定することができ、このような方法でスライスにその可能ならばImは疑問に、私はあなたが行うことができると信じてこのような何か:

targets = np.zeros((4, 5)) 
ind = [2, 4, 3, 4] 
targets[np.arange(0, 4), ind] = 1 

ここでは結果である:

array([[ 0., 0., 1., 0., 0.], 
     [ 0., 0., 0., 0., 1.], 
     [ 0., 0., 0., 1., 0.], 
     [ 0., 0., 0., 0., 1.]]) 
関連する問題