scipy.interpolate.interp1d

class scipy.interpolate.interp1d(x, y, kind='linear', axis=- 1, copy=True, bounds_error=None, fill_value=nan, assume_sorted=False)[源代码]

对一维函数进行插值。

xy 是用于逼近某个函数f的值数组: y = f(x) 。该类返回一个函数,该函数的调用方法使用插值来查找新点的值。

参数
x(n,)类似数组

实值的一维数组。

y(.,N,.)类似数组

实值的N-D数组。的长度 y 沿插值轴的长度必须等于 x

kind字符串或int,可选

将插值类型指定为字符串或整数,以指定要使用的样条插值器的顺序。字符串必须是“线性”、“最近”、“最近向上”、“零”、“线性”、“二次”、“立方”、“上一个”或“下一个”之一。“零”、“线性”、“二次”和“三次”是指零阶、一阶、二阶或三阶的样条插值;“上一次”和“下一次”只是返回点的上一个或下一个值;在“最近”向上舍入和“最近”向下舍入的半整数(例如0.5,1.5)时,“最近”和“最近”是不同的。默认值为“线性”。

axis整型,可选

指定 y 沿其进行插值。内插默认为的最后一个轴 y

copy布尔值,可选

如果为True,则该类创建x和y的内部副本。如果为False,则引用 xy 都是用过的。默认情况下是复制。

bounds_error布尔值,可选

如果为True,则每当尝试对x范围(需要外推)之外的值进行插值时,都会引发ValueError。如果为False,则分配越界值 fill_value 。默认情况下,除非出现以下情况,否则将引发错误 fill_value="extrapolate"

fill_value类数组OR(ARRAY-LIKE,ARRAY_LIKE)或“外推”,可选
  • 如果为ndarray(或浮点),则该值将用于填充数据范围之外的请求点。如果未提供,则默认值为NaN。类阵列必须正确地传播到非内插轴的维度。

  • 如果是两个元素的元组,则第一个元素用作的填充值 x_new < x[0] 第二个元素用于 x_new > x[-1] 。任何不是由2个元素组成的元组(例如,列表或ndarray,无论形状如何)都被视为单个类似数组的参数,用于两个边界,如下所示 below, above = fill_value, fill_value 。使用双元素元组或ndarray需要 bounds_error=False

    0.17.0 新版功能.

  • 如果“Extrapolate”,则数据范围之外的点将被外推。

    0.17.0 新版功能.

assume_sorted布尔值,可选

如果为False,则 x 可以按任何顺序排列,并首先对它们进行排序。如果为True, x 必须是单调递增的值的数组。

参见

splrep, splev

基于FITPACK的样条插值/平滑。

UnivariateSpline

FITPACK例程的面向对象包装器。

interp2d

二维插值

注意事项

呼叫 interp1d 输入值中存在NAN会导致未定义的行为。

输入值 xy 必须可转换为 float 值如 intfloat

如果中的值 x 不是唯一的,因此产生的行为是未定义的,并且特定于 kind ,即更改 kind 将更改重复项的行为。

示例

>>> import matplotlib.pyplot as plt
>>> from scipy import interpolate
>>> x = np.arange(0, 10)
>>> y = np.exp(-x/3.0)
>>> f = interpolate.interp1d(x, y)
>>> xnew = np.arange(0, 9, 0.1)
>>> ynew = f(xnew)   # use interpolation function returned by `interp1d`
>>> plt.plot(x, y, 'o', xnew, ynew, '-')
>>> plt.show()
../../_images/scipy-interpolate-interp1d-1.png
属性
fill_value

填充值。

方法:

__call__ \(X)

对插值求值