我有numpy数组和两个python索引列表,它们的位置将数组元素增加一。numpy是否有一些方法可以向量化此操作而不使用for循环?我目前的执行缓慢:a = np.zeros([4,5])xs = [1,1,1,3]ys = [2,2,3,0]for x,y in zip(xs,ys): # how to do it in numpy way (efficiently)? a[x,y] += 1print(a)输出:[[0. 0. 0. 0. 0.] [0. 0. 2. 1. 0.] [0. 0. 0. 0. 0.] [1. 0. 0. 0. 0.]]
2 回答

三国纷争
TA贡献1804条经验 获得超7个赞
>>> a = np.zeros([4,5])
>>> xs = [1, 1, 1, 3]
>>> ys = [2, 2, 3, 0]
>>> a[[xs,ys]] += 1
>>> a
array([[ 0., 0., 0., 0., 0.],
[ 0., 0., 1., 1., 0.],
[ 0., 0., 0., 0., 0.],
[ 1., 0., 0., 0., 0.]])
添加回答
举报
0/150
提交
取消