2024-05-14 15:34:47 发布
网友
我需要在大约一千万点上计算贝塞尔克函数。我知道scipy.special支持scipy.special.kv(n, x),但是我想要一个更快的评估以及内存效率更高的评估。理想情况下numexpr会很好,我尝试了numexpr.evaluate("kv(n, x)")和numexpr.evaluate("besselk(n,x)"),但都不起作用。有人知道BesselK在numexpr中的确切命令吗
scipy.special
scipy.special.kv(n, x)
numexpr
numexpr.evaluate("kv(n, x)")
numexpr.evaluate("besselk(n,x)")
numexpr文档列出了支持的函数,可惜贝塞尔函数不在其中
http://numexpr.readthedocs.io/projects/NumExpr3/en/latest/user_guide.html
你可以试着四处寻找替代的实现,例如从GSL或boost,但坦率地说,我怀疑速度上的差异会不会很小,如果有的话
可能相关的是避免在python端的点上循环。要么直接使用数组值参数来scipy.special.kv,要么直接放到Cython,然后在Cython中使用带循环的cython_special版本
scipy.special.kv
cython_special
numexpr文档列出了支持的函数,可惜贝塞尔函数不在其中
http://numexpr.readthedocs.io/projects/NumExpr3/en/latest/user_guide.html
你可以试着四处寻找替代的实现,例如从GSL或boost,但坦率地说,我怀疑速度上的差异会不会很小,如果有的话
可能相关的是避免在python端的点上循环。要么直接使用数组值参数来
scipy.special.kv
,要么直接放到Cython,然后在Cython中使用带循环的cython_special
版本相关问题 更多 >
编程相关推荐