Python 随机点的二维插值

Python 2D Interpolation onto Random Points

我有一个应该很简单的插值问题,但我一辈子都无法 scipy 正确处理。我想在 2D 中从规则采样点插值到不规则间隔的点(特别是,我在一个球体上测量了一个轮廓,该轮廓在 theta 和 phi 的网格上采样,我想投影到球体的不同像素化中)。创建插值器(使用 scipy.interpolate.interp2d)很顺利,但似乎没有任何方法可以针对不在网格上的点列表对其进行评估。特别是,如果 func2d 是 interpolate2d 的输出,那么我想要

    zi=func2d(xi,yi)

到 return 是一维数组而不是维度为 (len(xi),len(yi)) 的二维数组。

文档说

     |      Returns
     |      -------
     |      z : 2D array with shape (len(y), len(x))
     |          The interpolated values.

所以也许这是不可能的?我显然可以遍历点,但这看起来很原始。这似乎是一个如此常见的用例,必须有一个简单的解决方案,但对于我的生活我找不到一个。有人有建议吗?将不胜感激!

这可以通过 scipy.interpolate.RegularGridInterpolator

来完成