在Python中,我试图构造一个例程,在多维(5+)参数空间中插值向量值数据。i、 我有一个函数,它接受许多输入变量并返回许多输出变量。目前,向量的每个元素都有一个调用。数据在一个列文件中,所以我用
import numpy
[x_data,y_data,f1_data,f2_data] = numpy.loadtxt('data',unpack=True)
然后,我使用SciPy的函数实例化各个插值器,比如
^{pr2}$现在,当我进行插值调用时,我必须为每个值f1
,f2
等进行插值,尽管实际上它应该可以作为一个操作来实现。我猜做一次插值应该比做5次或更多。在
有没有一种方法可以构造一个向量(或数组)值插值器?
我试着用
f = interpolate.LinearNDInterpolator((x_data,y_data),(f1_data,f2_data,...))
但它返回错误
ValueError: different number of values and points
我也读过this question and answer,但它是关于一个标量的向量值函数,显然可以由interp1d
来处理。在
^{} 预期按行主要顺序接收数据:例如,在您的示例中,第一个参数需要是一个成对数组,而不是一对数组。由于在加载数据时对其进行了转置,因此在将其传递给
LinearNDInterpolator
之前,必须再次将其转置回来。尝试类似于:相关问题 更多 >
编程相关推荐