我想要对一个函数进行外推拟合。
scipy.interpolate.interp1d 能够完成此任务(详见文档片段)。
然而,我却收到了 "ValueError: A value in x_new is below the interpolation range." 的错误提示。
使用的是:python 2.7.12、numpy 1.13.3 和 scipy 0.19.1。
填充参数 fill_value:可以是数组或浮点数,用于填充数据范围之外的请求点。如果未提供,则默认为 NaN。 - 如果是两个元素的元组,则第一个元素用作
使用的是:python 2.7.12、numpy 1.13.3 和 scipy 0.19.1。
填充参数 fill_value:可以是数组或浮点数,用于填充数据范围之外的请求点。如果未提供,则默认为 NaN。 - 如果是两个元素的元组,则第一个元素用作
x_new < x[0]
的填充值,第二个元素用作 x_new > x[-1]
的填充值。任何不是两个元素的元组(例如列表或ndarray,无论其形状如何)都被视为单个数组样式参数,旨在同时用于下限和上限,即 below, above = fill_value, fill_value
。import numpy as np
from scipy.interpolate import interp1d
# make a time series
nobs = 10
t = np.sort(np.random.random(nobs))
x = np.random.random(nobs)
# compute linear interp (with ability to extrapolate too)
f1 = interp1d(t, x, kind='linear', fill_value='extrapolate') # this works
f2 = interp1d(t, x, kind='linear', fill_value=(0.5, 0.6)) # this doesn't