SciPy:稀疏数据的n维插值
SciPy: n-dimensional interpolation of sparse data
我目前有一个 n 维数据点的集合,每个数据点都有一个与之关联的 值(n 通常在 2 到 4 之间)。
我想对我提供的数据点采用某种形式的非线性插值,以便我可以尝试最小化此 值。当然,我愿意接受更好的方法来最小化 值。
目前,我有适用于一维和二维数组的代码
mesh = np.meshgrid(*[i['grid2'] for i in self.cambParams], indexing='ij')
chi2 = griddata(data[:,:-1], data[:,-1], tuple(mesh), method='cubic')
但是 scipy.interpolate.griddata 仅支持二维网格上方的线性插值,这意味着插值是无用的,因为最小值将是数据中定义的点。有谁知道可能有效的替代插值方法,或解决一般问题的更好方法?
干杯
从外部来源收到了有用的提示,因此post考虑一下答案以防将来对任何人有所帮助。
SciPy 有一个 Rbf 插值方法(径向基函数),在任意维度上比线性插值更好。
取一个变量 data
和 (x1,x2,x3...,xn,v)
行的值,对原始 post 的以下代码修改允许插值:
rbfi = Rbf(*data.T)
mesh = np.meshgrid(*[i['grid2'] for i in self.cambParams], indexing='ij')
chi2 = rbfi(*mesh)
文档 here is useful, and there is a simple and easy to follow example here,它比上面的代码片段更有意义。
我目前有一个 n 维数据点的集合,每个数据点都有一个与之关联的
我想对我提供的数据点采用某种形式的非线性插值,以便我可以尝试最小化此
目前,我有适用于一维和二维数组的代码
mesh = np.meshgrid(*[i['grid2'] for i in self.cambParams], indexing='ij')
chi2 = griddata(data[:,:-1], data[:,-1], tuple(mesh), method='cubic')
但是 scipy.interpolate.griddata 仅支持二维网格上方的线性插值,这意味着插值是无用的,因为最小值将是数据中定义的点。有谁知道可能有效的替代插值方法,或解决一般问题的更好方法?
干杯
从外部来源收到了有用的提示,因此post考虑一下答案以防将来对任何人有所帮助。
SciPy 有一个 Rbf 插值方法(径向基函数),在任意维度上比线性插值更好。
取一个变量 data
和 (x1,x2,x3...,xn,v)
行的值,对原始 post 的以下代码修改允许插值:
rbfi = Rbf(*data.T)
mesh = np.meshgrid(*[i['grid2'] for i in self.cambParams], indexing='ij')
chi2 = rbfi(*mesh)
文档 here is useful, and there is a simple and easy to follow example here,它比上面的代码片段更有意义。