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

给定索引列表,如何在没有 for 循环的情况下进行多次添加操作?

给定索引列表,如何在没有 for 循环的情况下进行多次添加操作?

茅侃侃 2022-06-02 15:39:46
标题可能有点糊涂,我在这里解释一下:给定一个数组:arr = np.array([1.0, 2.0])并给出一个索引列表:idxes = np.array([0, 0, 1, 0])以及要添加的号码列表:e = np.array([0.1, 0.35, 0.5, 0.2])我想要的是得到这样的结果:arr[idxes] += e意思是[arr[0], arr[0], arr[1], arr[0]] + [0.1, 0.35, 0.5, 0.2]所以arr[0]加了三倍,arr[0] = arr[0] + 0.1 + 0.35 + 0.2 = 1.65加arr[1]了一次arr[1] = arr[1] + 0.5 = 2.5,我怎么能在没有for循环的情况下直接做到这一点?
查看完整描述

1 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

使用numpy.add.at

np.add.at(arr, idxes, e)
arr

输出:

array([1.65, 2.5 ])


查看完整回答
反对 回复 2022-06-02
  • 1 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信