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

参数:
xi类数组

一个已排序的 x 坐标列表,长度为 N。

yi类数组

一个一维实数值数组。yi 沿插值轴的长度必须等于 xi 的长度。如果是 N 维数组,请使用 axis 参数选择正确的轴。

x标量或类数组

长度为 M。

der整型或列表,可选

要提取的导数。可以包含 0 阶导数以返回函数值。

axis整型,可选

yi 数组中与 x 坐标值对应的轴。

返回:
y标量或类数组

结果,长度为 R 或长度为 M 或 M 乘 R。

另请参阅

PchipInterpolator

PCHIP 一维单调三次插值器。

示例

我们可以使用 pchip 插值对二维观测数据进行插值

>>> 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()
../../_images/scipy-interpolate-pchip_interpolate-1.png