Python numpy插值的正确使用

Python numpy插值的正确使用,python,numpy,scipy,interpolation,Python,Numpy,Scipy,Interpolation,我需要在python中对非均匀分布的网格执行一些过滤。因此,我通过griddata将非均匀网格插值为均匀网格: zi = interpolate.griddata((xin, yin), zin, (xi[None,:], yi[:,None]), method='cubic') 然后,在过滤完zi之后,我需要将网格反插值到原始的xin、yin点。如果我这样做: zout = interpolate.griddata((xi, yi), zi, (xin[None,:], yin[:,None

我需要在python中对非均匀分布的网格执行一些过滤。因此,我通过griddata将非均匀网格插值为均匀网格:

zi = interpolate.griddata((xin, yin), zin, (xi[None,:], yi[:,None]), method='cubic')
然后,在过滤完zi之后,我需要将网格反插值到原始的xin、yin点。如果我这样做:

zout = interpolate.griddata((xi, yi), zi, (xin[None,:], yin[:,None]), method='cubic')
我得到了一些我不理解的错误,与Delaunay三角剖分中的“qhull精度警告”和“qhull错误”有关

有人知道我如何解决这个问题吗?这可能与(心,阴)不有序有关吗?谢谢

[更新] 我将尝试澄清输入数据是什么。输入数据是在中心(x轴和y轴)经过细化的笛卡尔网格。只要我想对它进行过滤,我就需要对它的均匀采样版本进行插值,然后执行另一次插值,以从均匀采样返回到细化版本


“辛”、“阴”、“是”是一维数组,也是“席”和“义”。zi(griddata的输出)是一个2D数组。

您对
griddata
的第二次调用不正确。它期望
xi
yi
是每个点的坐标,
zi[i,:]
是对应于点
(xi[i],yi[i])
的值


显然,您的
xi
yi
数组恰好具有相同数量的
N
条目,因此不会立即出现错误。函数无法猜测您是否真的希望它做其他事情。

您能在帖子中添加一些示例输入数据吗?如果愿意,您可以生成与输入形状相同的随机数据。请尝试使用
method='nearest'
查看是否出现此错误…您的数据是什么样的?二维中的分散点,或者数据是按规则网格排序的?什么是心形,
阴形
锌形
?如果没有这些信息,很难判断您是否正确使用了该功能。“Qhull误差”通常意味着数据位于二维中的一条直线上,因此不能用于任何类型的插值。