Python 使用另一个数组分配Numpy数组

Python 使用另一个数组分配Numpy数组,python,arrays,numpy,Python,Arrays,Numpy,是否可以使用另一个数组沿列方向为Numpy数组的某些行索引赋值? 例如: x = [[0,0], [0,0], [0,0], [0,0]] a = [[0], [1], [0], [1]] the resulting x after some operation, op(x, a) = 1, is x= [[1,0], [0,1], [1,0], [0,1]] 这可能是您需要的: import numpy as np x = np.array([[0,0], [0,0], [0,0

是否可以使用另一个数组沿列方向为Numpy数组的某些行索引赋值? 例如:

x = 
[[0,0],
[0,0],
[0,0],
[0,0]]

a = 
[[0],
[1],
[0],
[1]]

the resulting x after some operation, op(x, a) = 1, is

x=
[[1,0],
[0,1],
[1,0],
[0,1]]

这可能是您需要的:

import numpy as np

x = np.array([[0,0],
[0,0],
[0,0],
[0,0]])

a = np.array([[0],
[1],
[0],
[1]])

for idx, i in enumerate(a):
    x[idx, i] = 1 
或者,没有循环:

x[range(x.shape[0]), a.ravel()] = 1 

# x
# array([[1, 0],
#        [0, 1],
#        [1, 0],
#        [0, 1]])

好的,谢谢,我明白了,有没有其他方法可以不用循环来做呢?用
a
怎么决定
x
?什么是手术?