使用NumPy / SciPy进行向量值函数插值

时间:2012-06-21 00:17:43

标签: python numpy scipy interpolation

有没有办法使用NumPy / SciPy插值矢量值函数?

有很多产品可用于标量值函数,我想我可以使用其中一个来分别估计向量的每个分量,但有没有办法更有效地做到这一点?

详细说明,我有一个函数f(x) = V,其中x是标量,V是一个向量。我还有一个xs及其对应的Vs的集合。我想用它来为任意V插入和估算x

1 个答案:

答案 0 :(得分:7)

插值函数scipy.interpolate.interp1d也适用于插值的矢量值数据(不适用于矢量值参数数据)。因此,只要x是标量,就可以直接使用它。

以下代码是the scipy documentation中给出的示例的略微扩展:

>>> from scipy.interpolate import interp1d
>>> x = np.linspace(0, 10, 10)
>>> y = np.array([np.exp(-x/3.0), 2*x])
>>> f = interp1d(x, y)
>>> f(2)
array([ 0.51950421,  4.        ])
>>> np.array([np.exp(-2/3.0), 2*2])
array([ 0.51341712,  4.        ])

请注意,2不在参数向量x中,因此本例中y中第一个组件的插值错误。