使用索引数组更改numpy数组
我有一个numpy数组:使用索引数组更改numpy数组,numpy,Numpy,我有一个numpy数组: A=np.零((5,10)) 我想根据另一个数组([7,2,9,4,5])N=np.array([7,2,9,4,5])将每行中的一个值更改为1 比如:A[:,N]=1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0
A=np.零((5,10))
我想根据另一个数组([7,2,9,4,5])N=np.array([7,2,9,4,5])将每行中的一个值更改为1
比如:A[:,N]=1代码>
0 0 0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0
我该怎么做呢?既然您想为每行设置一个元素,那么您需要使用arange(5)
对第一个轴进行索引。这可以被认为是设置索引(I0[0],N[0])=(0,7)
,(I0[1],N[1])=(1,2)
I0 = np.arange(A.shape[0])
A[I0, N] = 1
A
=>
array([[ 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],
[ 0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.]])
A.nonzero()
=> (array([0, 1, 2, 3, 4]), array([7, 2, 9, 4, 5]))
每列的哪一行?