在 Python 中,我试图构建一个在多维(5+)参数空间中插入向量值数据的例程。即我有一个函数,它接受一些输入变量并返回一些输出变量。目前,向量的每个元素都有一个调用。数据在一个列文件中,所以我用
import numpy
[x_data,y_data,f1_data,f2_data] = numpy.loadtxt('data',unpack=True)
然后,我使用 SciPy 的函数实例化各个插值器,例如
from scipy import interpolate
f1 = interpolate.LinearNDInterpolator((x_data,y_data),f1_data)
f2 = interpolate.LinearNDInterpolator((x_data,y_data),f2_data)
...
现在,当我进行插值调用时,我必须为每个值f1
、f2
等进行插值,即使它确实应该作为一个操作来实现。而且我猜测进行一次插值应该比进行 5 次或更多更快。
有没有办法构造一个向量(或数组)值的插值器?
我尝试用
f = interpolate.LinearNDInterpolator((x_data,y_data),(f1_data,f2_data,...))
但它返回错误
ValueError:不同数量的值和点
我也读过这个问题和答案,但它是关于标量的向量值函数,显然可以由interp1d
.