scipy.interpolate.
pchip_interpolate#
- scipy.interpolate.pchip_interpolate(xi, yi, x, der=0, axis=0)[源代码]#
用于 pchip 插值的便捷函数。
xi 和 yi 是用于近似某个函数 f 的值数组,其中
yi = f(xi)
。插值器使用单调三次样条来查找新点 x 的值和那里的导数。有关详细信息,请参阅
scipy.interpolate.PchipInterpolator
。- 参数:
- xiarray_like
长度为 N 的已排序 x 坐标列表。
- yiarray_like
实数值的一维数组。yi 沿插值轴的长度必须等于 xi 的长度。如果为 N 维数组,请使用 axis 参数选择正确的轴。
自版本 1.13.0 起已弃用: 复数数据已弃用,将在 SciPy 1.15.0 中引发错误。如果您尝试使用传入数组的实数分量,请在 yi 上使用
np.real
。- x标量或 array_like
长度为 M。
- derint 或 list,可选
要提取的导数。可以包含第 0 阶导数以返回函数值。
- axisint,可选
yi 数组中对应于 x 坐标值的轴。
- 返回:
- y标量或 array_like
结果,长度为 R 或长度为 M 或 M 乘以 R。
另请参阅
PchipInterpolator
PCHIP 1-D 单调三次插值器。
示例
我们可以使用 pchip 插值来插值 2D 观测数据
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy.interpolate import pchip_interpolate >>> x_observed = np.linspace(0.0, 10.0, 11) >>> y_observed = np.sin(x_observed) >>> x = np.linspace(min(x_observed), max(x_observed), num=100) >>> y = pchip_interpolate(x_observed, y_observed, x) >>> plt.plot(x_observed, y_observed, "o", label="observation") >>> plt.plot(x, y, label="pchip interpolation") >>> plt.legend() >>> plt.show()