python – 聚合numpy函数

python – 聚合numpy函数,第1张

概述我有一个强调的 *** 作,我需要优化: np.sum(a**2, axis=1)**.5 # where a is a 2 dimensional ndarray 该 *** 作由三个函数组成,需要三次迭代’a’.在一个函数下聚合所有 *** 作并沿轴1仅应用该函数会更有效.不幸的是,numpy的apply_along_axis函数不是一个选项,因为性能大约是x1000差. 有没有办法聚合几个numpy *** 作,所以它 我有一个强调的 *** 作,我需要优化:

np.sum(a**2,axis=1)**.5   # where a is a 2 dimensional ndarray

该 *** 作由三个函数组成,需要三次迭代’a’.在一个函数下聚合所有 *** 作并沿轴1仅应用该函数会更有效.不幸的是,numpy的apply_along_axis函数不是一个选项,因为性能大约是x1000差.

有没有办法聚合几个numpy *** 作,所以它只需要在数组上循环一次?

解决方法 使用浮点数组时,可以使用 np.einsum

np.sqrt(np.einsum('ij,ij->i',a,a))

运行时测试 –

In [34]: a = np.random.rand(1000,1000)In [35]: np.allclose(np.sum(a**2,axis=1)**.5,np.sqrt(np.einsum('ij,a)))Out[35]: TrueIn [36]: %timeit np.sum(a**2,axis=1)**.5100 loops,best of 3: 7.57 ms per loopIn [37]: %timeit np.sqrt(np.einsum('ij,a))1000 loops,best of 3: 1.52 ms per loop
总结

以上是内存溢出为你收集整理的python – 聚合numpy函数全部内容,希望文章能够帮你解决python – 聚合numpy函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址:https://54852.com/langs/1193602.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存