Pythonでnumpy.ix_ の使い方
1132 ワード
複数行の複数列に同時に値を割り当てるにはnumpyを使用する.ix_
出力結果:
現在、Aの3、4行目、1、2列目に6を同時に付与しています.
出力結果は
注意しなければならないのは
出力結果は
Aの値は変わっていないことがわかります
import numpy as np
A=np.zeros((6,6))
print(A)
出力結果:
array([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])
現在、Aの3、4行目、1、2列目に6を同時に付与しています.
A[np.ix_([2,3],[0,1])]=6
print(A)
出力結果は
array([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[6., 6., 0., 0., 0., 0.],
[6., 6., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])
注意しなければならないのは
A[[2,3]][:,[0,1]]
# read-only access( ),
#
import numpy as np
A=np.zeros((5,5))
A[[2,3]][:,[0,1]]=6
print(A)
出力結果は
array([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])
Aの値は変わっていないことがわかります