本文简要介绍 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
的预期替换的指南,请参阅一维插值。x和y是用于逼近某个函数 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()
fill_value
填充值。
属性 ::
相关用法
- Python SciPy interpolate.interp2d用法及代码示例
- Python SciPy interpolate.interpn用法及代码示例
- Python SciPy interpolate.insert用法及代码示例
- Python SciPy interpolate.make_interp_spline用法及代码示例
- Python SciPy interpolate.krogh_interpolate用法及代码示例
- Python SciPy interpolate.InterpolatedUnivariateSpline用法及代码示例
- Python SciPy interpolate.BSpline用法及代码示例
- Python SciPy interpolate.LSQSphereBivariateSpline用法及代码示例
- Python SciPy interpolate.griddata用法及代码示例
- Python SciPy interpolate.splder用法及代码示例
- Python SciPy interpolate.LinearNDInterpolator用法及代码示例
- Python SciPy interpolate.PPoly用法及代码示例
- Python SciPy interpolate.NdBSpline用法及代码示例
- Python SciPy interpolate.pade用法及代码示例
- Python SciPy interpolate.barycentric_interpolate用法及代码示例
- Python SciPy interpolate.RegularGridInterpolator用法及代码示例
- Python SciPy interpolate.NdPPoly用法及代码示例
- Python SciPy interpolate.approximate_taylor_polynomial用法及代码示例
- Python SciPy interpolate.RectSphereBivariateSpline用法及代码示例
- Python SciPy interpolate.sproot用法及代码示例
- Python SciPy interpolate.splantider用法及代码示例
- Python SciPy interpolate.CloughTocher2DInterpolator用法及代码示例
- Python SciPy interpolate.BPoly用法及代码示例
- Python SciPy interpolate.BarycentricInterpolator用法及代码示例
- Python SciPy interpolate.splrep用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.interpolate.interp1d。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。