python - 是否有 scipy/numpy 方法来获取最近插值的索引?

标签 python numpy scipy interpolation nearest-neighbor

我基本上有一组大型 (GB) 数据集,其中包含我需要对其进行最近插值的点。本质上,它是一个随时间变化的标量/矢量场。我知道 scipy.interpolate 及其优点,我一直在使用它。然而,我意识到数据的空间结构在时间上是恒定的(欧拉),所以一旦我弄清楚哪些索引对应于插值的这个或那个点,比如说,第一个时间步长,我就可以获得这些索引,并且相同的索引应该能够为其他时间创建相同形状的插值数据。本质上,它省去了一次又一次重新插值数据的步骤。

我愿意自己做这件事,但我想检查是否已经存在一种方法可以做到这一点,可能不在 scipy 中,而是在其他地方。 scipy.interpolate 没有任何现成的东西看起来可以做到这一点。如果没有答案,我会发布我的解决方案。

最后一点,网格是欧拉网格但不是规则的并且可能有重复,因此需要最近的插值。我可以(并且已经)对空间点进行词法排序,这将有助于快速查找。

最佳答案

k-D trees通常用于划分多维数据以执行快速最近邻搜索。

例如,scipy.interpolate.NearestNDInterpolator本质上只是 scipy.spatial.cKDTree 的包装(参见源代码 here )。 cKDTree.query将返回最近邻索引以及给定输入坐标集的相应距离。

关于python - 是否有 scipy/numpy 方法来获取最近插值的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34537254/

相关文章:

python - 如何使 itertools 组合 'increase' 均匀?

Python3,数组中的列名 - numpy 或 pandas

python - 同时处理 TCP 和 UDP 的 Twisted 协议(protocol)

python - 包含只有静态方法的类的模块

python - 如何在Python中准确解释大 float

python - 查找回归平面并将其绘制到一组点

python - 基于 numpy/scipy 包的代码中的形状不一致

python - Trapz 对一定范围内的分组数据进行积分

python - 在 SciPy 中,csr_matrices 的奇特索引

python - 结合 PySide 和 PyGame