使用索引数组更改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

我有一个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
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]))

每列的哪一行?