我需要对BesselK函数进行大约一千万点的评估。我知道scipy.special支持scipy.special.kv(n, x),但是我想要一个更快的评估和一个内存效率的评估。理想情况下,numexpr会很好,我和numexpr.evaluate("besselk(n,x)")一样尝试了numexpr.evaluate("kv(n, x)"),但两者都没有工作。有人知道BesselK在numexpr中的确切命令吗?
发布于 2018-05-20 19:02:50
numexpr docs列出了支持的函数,唉,Bessel函数不在其中。
guide.html
您可以尝试寻找替代的实现,例如从GSL或boost,但坦率地说,我怀疑速度差异会是不平凡的,如果有任何。
可能相关的是避免在python端的点上循环。要么只对scipy.special.kv使用数组值的参数,要么拖到Cython,并在Cython中使用循环的cython_special版本。
https://stackoverflow.com/questions/50438054
复制相似问题