首页 > 解决方案 > 如何使用 2D 数据进行 Python 插值?

问题描述

我是 Python 新手,我有一个简单的插值示例,我想使用“interpn”来解决。

x = np.linspace(0,1,4)
y = np.linspace(-1,1,5)

A = np.zeros((len(x), len(y)))

for i in range (1,len(x)):
    for j in range (1,len(y)):
        A[i,j] = np.sin(x[i] ** 2 + y[j] ** 2)

x1 = np.linspace(0,1,10)
y1 = np.linspace(-1,1,20)

xi,yi = np.meshgrid(x,y)
x1i,y1i = np.meshgrid(x1,y1)



int_A = interpn(xi,yi,A,x1i,y1i)

为此,我最终得到了值错误“interpn 只理解方法'linear'、'nearest'和'splinef2d'”。因此,当我将所有输入数据都设为 2D 数组时,如何使用“interpn”函数进行插值,或者在这种情况下使用任何其他 Python 插值函数?我也对使用所有输入数据和函数值都是 3D 数组进行 3D 插值感兴趣。有人可以帮我解决这些问题吗?非常感谢!

标签: pythoninterpolation

解决方案


你看过https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html吗?

这应该允许您将 2D 网格作为输入。


推荐阅读