为了账号安全,请及时绑定邮箱和手机立即绑定

使用索引列表对numpy数组的元素执行操作

使用索引列表对numpy数组的元素执行操作

潇湘沐 2021-04-08 18:12:07
我有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.]])


查看完整回答
反对 回复 2021-04-20
  • 2 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号