使用 scipy.interpolate.RegularGridInterpolator 得到一个错误 "There are 100 point arrays, but values has 2 dimensions"
Using scipy.interpolate.RegularGridInterpolator get an error "There are 100 point arrays, but values has 2 dimensions"
我知道 解释了如何操作,但我想我遵循了 post 中列出的步骤,但仍然出现尺寸错误。
这是我试过的:
import numpy as np
from scipy.interpolate import RegularGridInterpolator
x = np.linspace(0,1,100)
y = x ** 2
f = RegularGridInterpolator(x,y)
我所做的与链接的 post 所做的完全相同。但是,我仍然遇到同样的错误:
There are 100 point arrays, but values has 2 dimensions
那是因为我处理的是一维数据吗?如果我能得到这方面的指示,将不胜感激。
正确的语法是
RegularGridInterpolator((x,), y)
网格由数组元组确定:一个用于第一个坐标,一个用于第二个,等等。这里您需要一个包含 1 个列表的元组。
如果这看起来不必要地复杂,那是因为它确实如此。此方法并不是真正用于 one-dimensional 域的插值,其中更简单的方法就足够了(interp1d
,等等)。
我知道
这是我试过的:
import numpy as np
from scipy.interpolate import RegularGridInterpolator
x = np.linspace(0,1,100)
y = x ** 2
f = RegularGridInterpolator(x,y)
我所做的与链接的 post 所做的完全相同。但是,我仍然遇到同样的错误:
There are 100 point arrays, but values has 2 dimensions
那是因为我处理的是一维数据吗?如果我能得到这方面的指示,将不胜感激。
正确的语法是
RegularGridInterpolator((x,), y)
网格由数组元组确定:一个用于第一个坐标,一个用于第二个,等等。这里您需要一个包含 1 个列表的元组。
如果这看起来不必要地复杂,那是因为它确实如此。此方法并不是真正用于 one-dimensional 域的插值,其中更简单的方法就足够了(interp1d
,等等)。