scipy.interpolate.pchip_interpolate(xi, yi, x, der=0, axis=0)[source]#

Convenience function for pchip interpolation.

xi and yi are arrays of values used to approximate some function f, with yi = f(xi). The interpolant uses monotonic cubic splines to find the value of new points x and the derivatives there.

See scipy.interpolate.PchipInterpolator for details.


A sorted list of x-coordinates, of length N.


A 1-D array of real values. yi’s length along the interpolation axis must be equal to the length of xi. If N-D array, use axis parameter to select correct axis.

xscalar or array_like

Of length M.

derint or list, optional

Derivatives to extract. The 0th derivative can be included to return the function value.

axisint, optional

Axis in the yi array corresponding to the x-coordinate values.

yscalar or array_like

The result, of length R or length M or M by R.

See also


PCHIP 1-D monotonic cubic interpolator.


We can interpolate 2D observed data using pchip interpolation:

>>> 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()