#17356·scipy

轨迹增量改进/重构“注册地刑警组织(.,方法=“线性”)”

作者: ev-br创建于 2022年11月6日更新于 2026年9月18日
标签enhancementscipy.interpolatesustain-2026

https://GitHub.com/scipy/scipy/pul/17291为正版Gridpotor的2D线性模式实施了快速路径. 这是初步执行,这个问题是要跟踪可能的渐进改进。

首先,可以进行若干可能的试验,以确定目前的执行情况(见 " interpolt/ rgi.py " 和 " interpolt/ rgi cython.pyx " )是否可以进一步加快或简化:

  • 试验Cython中的 " tuple grade " 论点:尝试将单个元素放入(这样电网就变成N-D阵列)并绕过实际大小,或者咬住子弹并切换到 " double " (也许不是这个)。 这将使Python从Cython代码中去除最后的位元相互作用,而后者则有可能被宣布为"nogil". 需要看看这是否有帮助 与perf。
  • 看看我们能不能要求记忆视图是C相接的 这需要我仔细思考价值的后遗症(如果有些混乱,那就没什么大不了的), 并可能让转录器正确, 以确保细胞循环尊重内存位置。 这还需要一些 np.as contactivearrays, 这可能需要复制, 所以有记忆的考虑。 同样,需要衡量影响。
  • 看看我们能否简化 Cython 逻辑: ATM 既大小一轴,又有 Nan 输入使 find indices 返回 -1. 也许我们可以简化一下 一个复杂的是,由于"Duck-typed ranges"(从2014年引入了RGI的原始PR来看,这些都是为了照顾像NetCDF文件等的出模数组),目前的快路无法完全取代Python-level ergation linear.

gh-17291审查中提到的其他要点:

  • 考虑增加一个 三维快道。
  • 考虑增加通用N-D细胞化评价。 这样做有望避免快速路径的需要,但迄今为止似乎很难绕过赛通中具体时间的维数。 简言之,这需要更换无Python " 工具 " 。

如果项目规模较大,另一个选择是实施NdBSpline'类,以体现NdPPoly'。 这有可能显著地改进线性RGI模式和线性RGI模式:然后前者可以被"线性"模式所取而代之,而后者则不再需要回溯性‘make interp spline'调用.

更新02/2024:https://GitHub.com/scipy/scipy/pull/19633 已合并到1.13发布周期,因此完成了最后两个项目(N-D评价和NdBSplin),并作为"mode="slinear"提供