python二维插值,一次一维

2024-09-20 22:53:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试实现一些插值技术-特别是使用scipy pchip例程。在

我想确定的是,是否可以通过分别插值每个坐标来执行规则空间二维数据的插值。在

例如,如果我有:

(1 x m) vector of X coordinates
(1 x n) vector of Y coordinates

(m x n) matrix of Z coordinates //Z value corresponding to (x,y) pair

是否可以连续对每个维度执行pchip插值,从而创建插值曲面?在

Pchip期望数据以Pchip(X,Z)的形式存在,其中X和Z都是1D数组。那么,插值每个维度的最佳方法是什么?例如,我应该为Z矩阵的每一列做pchip(X,Z)?然后对第一次插值得到的矩阵的每一行进行pchip(Y,Z*)?在

谢谢你的帮助。我看过pv-post关于用pchip执行张量rpouct插值的文章,但是它导致了一个令人讨厌的除数为零的错误,我无法摆脱,即使他在github上进行了更新。在

编辑:

我发现这张罚单是关于我使用pchip发出的警告: http://projects.scipy.org/scipy/ticket/1838

有谁能告诉我这是什么意思吗 这样生成的inf/nan通过应用布尔条件掩码过滤掉,但该掩码可以在除法之前应用,以完全避免警告在

我怎样才能避免警告呢?在


Tags: of数据警告规则空间矩阵scipy例程
1条回答
网友
1楼 · 发布于 2024-09-20 22:53:44

请看中最上面的图片 Bilinear interpolation
找到最接近y的y1、y2行,
pchipx中的R1 R2(蓝色),
然后线性插值得到P(绿色)。
(也可以按另一个顺序进行,然后求x-y,y-then-x的平均值。)

但是如果pchip在结之间几乎是线性的(这是您的数据吗?),
那么直接做双线性会更简单, 或者 scipy BivariateSpline
或与 scipy.ndimage.interpolation.map_coordinates(。。。顺序=1) 还有包装纸 Intergrid。在

相关问题 更多 >

    热门问题