在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
等等,尽管实际上它应该可以作为一项操作来实现。我猜测进行 1 次插值应该比进行 5 次或更多插值更快。
有没有办法构建向量(或数组)值插值器?
我尝试用构建插值器
f = interpolate.LinearNDInterpolator((x_data,y_data),(f1_data,f2_data,...))
但它返回错误
ValueError:不同数量的值和点
我也读过这个问题和答案但它是关于标量的向量值函数,显然可以通过interp1d
.