向量值多元函数的插值

2024-09-27 07:32:12 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,我试图构造一个例程,在多维(5+)参数空间中插值向量值数据。i、 我有一个函数,它接受许多输入变量并返回许多输出变量。目前,向量的每个元素都有一个调用。数据在一个列文件中,所以我用

import numpy
[x_data,y_data,f1_data,f2_data] = numpy.loadtxt('data',unpack=True)

然后,我使用SciPy的函数实例化各个插值器,比如

^{pr2}$

现在,当我进行插值调用时,我必须为每个值f1f2等进行插值,尽管实际上它应该可以作为一个操作来实现。我猜做一次插值应该比做5次或更多。在

有没有一种方法可以构造一个向量(或数组)值插值器?

我试着用

f = interpolate.LinearNDInterpolator((x_data,y_data),(f1_data,f2_data,...))

但它返回错误

ValueError: different number of values and points

我也读过this question and answer,但它是关于一个标量的向量值函数,显然可以由interp1d来处理。在


Tags: and文件数据函数numpy元素data参数
1条回答
网友
1楼 · 发布于 2024-09-27 07:32:12

^{}预期按行主要顺序接收数据:例如,在您的示例中,第一个参数需要是一个成对数组,而不是一对数组。由于在加载数据时对其进行了转置,因此在将其传递给LinearNDInterpolator之前,必须再次将其转置回来。尝试类似于:

points = numpy.array((x, y)).T
values = numpy.array((f1, f2)).T
f = interpolate.LinearNDInterpolator(points, values)

相关问题 更多 >

    热门问题