我需要在大约一千万点评估BesselK功能。我知道scipy.special
支持scipy.special.kv(n, x)
,但我想要更快的评估以及内存效率评估。理想情况下,numexpr
会很好,我尝试了numexpr.evaluate("kv(n, x)")
以及numexpr.evaluate("besselk(n,x)")
,但两者都不起作用。有谁知道numexpr
中BesselK的确切命令?
答案 0 :(得分:1)
numexpr docs列出了支持的函数,唉,Bessel函数不在其中。
http://numexpr.readthedocs.io/projects/NumExpr3/en/latest/user_guide.html
您可以尝试寻找替代实施方案,例如:来自GSL或者提升,但坦率地说,我怀疑速度差异是不是微不足道的,如果有的话。
可能与相关的是避免在python端的点上的循环。要么只使用scipy.special.kv
的数组值参数,要么放到Cython中,并使用cython_special
版本在Cython中循环。