numexpr 是否支持特殊的贝塞尔函数?
Does numexpr support special bessel functions?
我需要在大约一千万点评估 BesselK 函数。我知道 scipy.special
支持此作为 scipy.special.kv(n, x)
,但我想要更快的评估以及内存效率评估。理想情况下 numexpr
会很好,我尝试了 numexpr.evaluate("kv(n, x)")
以及 numexpr.evaluate("besselk(n,x)")
但都没有用。有谁知道 numexpr
中 BesselK 的确切命令?
numexpr 文档列出了支持的函数,遗憾的是,Bessel 函数不在其中。
http://numexpr.readthedocs.io/projects/NumExpr3/en/latest/user_guide.html
您可以尝试寻找替代实现,例如来自 GSL 或 boost,但坦率地说,我怀疑速度差异是否会是微不足道的,如果有的话。
可能相关的是避免在 python 侧的点上循环。要么只使用 scipy.special.kv
的数组值参数,要么使用 Cython 并在 Cython 中使用循环的 cython_special
版本。
我需要在大约一千万点评估 BesselK 函数。我知道 scipy.special
支持此作为 scipy.special.kv(n, x)
,但我想要更快的评估以及内存效率评估。理想情况下 numexpr
会很好,我尝试了 numexpr.evaluate("kv(n, x)")
以及 numexpr.evaluate("besselk(n,x)")
但都没有用。有谁知道 numexpr
中 BesselK 的确切命令?
numexpr 文档列出了支持的函数,遗憾的是,Bessel 函数不在其中。
http://numexpr.readthedocs.io/projects/NumExpr3/en/latest/user_guide.html
您可以尝试寻找替代实现,例如来自 GSL 或 boost,但坦率地说,我怀疑速度差异是否会是微不足道的,如果有的话。
可能相关的是避免在 python 侧的点上循环。要么只使用 scipy.special.kv
的数组值参数,要么使用 Cython 并在 Cython 中使用循环的 cython_special
版本。