当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy interpolate.interp1d用法及代码示例


本文简要介绍 python 语言中 scipy.interpolate.interp1d 的用法。

用法:

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

插值一维函数。

遗产

此类被视为遗留类,将不再接收更新。这也可能意味着它将在未来的 SciPy 版本中被删除。有关 interp1d 的预期替换的指南,请参阅一维插值。

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

参数

x (npoints, ) 类似数组

一维实数值数组。

y (..., npoints, ...) 数组

N-D 实数值数组。长度为y沿插补轴的长度必须等于x。使用axis参数来选择正确的轴。与其他插补器不同,默认插补轴是最后一个轴y.

kind str 或 int,可选

将插值类型指定为字符串或整数,指定要使用的样条插值器的顺序。该字符串必须是 ‘linear’, ‘nearest’、‘nearest-up’、‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘previous’ 或 ‘next’ 之一。 ‘zero’, ‘slinear’, ‘quadratic’和‘cubic’指的是零阶、一阶、二阶或三阶样条插值; ‘previous’ 和 ‘next’ 仅返回该点的上一个或下一个值; ‘nearest-up’和‘nearest’在插值half-integers(例如0.5、1.5)时有所不同,‘nearest-up’向上舍入,而‘nearest’向下舍入。默认为‘linear’。

axis 整数,可选

y 数组中的轴对应于 x 坐标值。与其他插值器不同,默认为 axis=-1

copy 布尔型,可选

如果为 True,则该类制作 x 和 y 的内部副本。如果为 False,则使用对 x 和 y 的引用。默认是复制。

bounds_error 布尔型,可选

如果为 True,则在任何时候尝试对 x 范围之外的值进行插值时都会引发 ValueError(需要外插)。如果为 False,则分配超出范围的值 fill_value 。默认情况下,除非 fill_value="extrapolate" 否则会引发错误。

fill_value 类似数组或(类似数组,数组)或“extrapolate”,可选
  • 如果是 ndarray (或 float),则该值将用于填充数据范围之外的请求点。如果未提供,则默认值为 NaN。类似数组必须正确广播到非插值轴的维度。

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

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

assume_sorted 布尔型,可选

如果为 False,则 x 的值可以是任何顺序,并且它们首先被排序。如果为 True,x 必须是一个单调递增值的数组。

注意

使用输入值中存在的 NaNs 调用 interp1d 会导致未定义的行为。

输入值 x 和 y 必须可转换为浮点值,例如 int 或浮点数。

如果 x 中的值不是唯一的,则结果行为是未定义的并且特定于种类的选择,即改变种类将改变重复的行为。

例子

>>> import numpy as np
>>> 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()
scipy-interpolate-interp1d-1.png

属性

fill_value

填充值。

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.interpolate.interp1d。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。