依次在numpy数组中添加值,而无需循环

依次在numpy数组中添加值,而无需循环,第1张

依次在numpy数组中添加值,而无需循环

用途

numpy.add.at

>>> import numpy as np>>> A = np.array([1,2,3])>>> B = np.array([10,20,30])>>> I = np.array([0,1,1])>>> >>> np.add.at(A, I, B)>>> Aarray([11, 52,  3])

或者,

np.bincount

>>> A = np.array([1,2,3])>>> B = np.array([10,20,30])>>> I = np.array([0,1,1])>>> >>> A += np.bincount(I, B, minlength=A.size).astype(int)>>> Aarray([11, 52,  3])

哪个更快?

依靠。在这个具体示例中,

add.at
速度似乎稍快一些,大概是因为我们需要在
bincount
解决方案中转换类型。

如果OTOH

A
B
float
D类,然后
bincount
会更快。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5650243.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存