是否可以使用另一个数组沿列方式为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]]
答案 0 :(得分:3)
这可能是您所需要的:
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]])