2
とインデックスのリストを使用して、行ごとに、特定の列のインデックスを交換する:numpyのは、私は次のことをしようとしていますナン
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
print a
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
a[np.arange(len(a)), [1,0,2]] = 20 #--Code1
print a
array([[ 1, 20, 3],
[20, 5, 6],
[ 7, 8, 20]])
しかし、私のインデックスは、それらでnan
持っている場合:
a[np.arange(len(a)), [1,np.nan,2]] = 20 #--Code2
それをエラーが出ます。
インデックスにnan
がある場合は、何も変更しないでください。
即ち、私は次のように得ることができるように、上記Code2
を実現したかった:
array([[ 1, 20, 3],
[4, 5, 6],
[ 7, 8, 20]])