我知道有一个post解释了如何做到这一点,但我认为我按照帖子中概述的步骤进行操作,但仍然出现尺寸错误。
这是我尝试过的:
import numpy as np
from scipy.interpolate import RegularGridInterpolator
x = np.linspace(0,1,100)
y = x ** 2
f = RegularGridInterpolator(x,y)
我所做的与链接帖子的操作完全相同。但是,我仍然遇到同样的错误:
There are 100 point arrays, but values has 2 dimensions
这是因为我正在处理一维数据吗?如果我能得到这方面的指导,我将不胜感激。
最佳答案
正确的语法是
RegularGridInterpolator((x,), y)
网格由数组元组确定:一个用于第一个坐标,一个用于第二个坐标,等等。这里您需要一个 1 列表的元组。
如果这看起来不必要地复杂,那是因为事实确实如此。此方法实际上并不是用于一维域插值,更简单的方法就足够了(interp1d
等)。
关于python - 使用 scipy.interpolate.RegularGridInterpolator 出现错误 "There are 100 point arrays, but values has 2 dimensions",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49763568/