1

我需要在大约一千万点处评估 BesselK 函数。我知道scipy.special支持这一点scipy.special.kv(n, x),但我想要更快的评估以及内存有效的评估。理想情况下numexpr会很好,我也试过numexpr.evaluate("kv(n, x)")了,numexpr.evaluate("besselk(n,x)")但都没有奏效。有人知道 BesselK in 的确切命令numexpr吗?

4

1 回答 1

1

numexpr 文档列出了支持的函数,唉,贝塞尔函数不在其中。

http://numexpr.readthedocs.io/projects/NumExpr3/en/latest/user_guide.html

您可以尝试四处寻找替代实现,例如来自 GSL 或 boost,但坦率地说,我怀疑速度差异将不是微不足道的,如果有的话。

可能相关的是避免在 python 端的点上循环。要么只使用数组值参数到Cython,要么使用scipy.special.kvCython 并cython_special在 Cython 中使用带有循环的版本。

于 2018-05-20T19:02:50.180 回答