scipy.interpolate.PchipInterpolator¶

class
scipy.interpolate.
PchipInterpolator
(x, y, axis=0, extrapolate=None)[source]¶ PCHIP 1D monotonic cubic interpolation.
x
andy
are arrays of values used to approximate some function f, withy = f(x)
. The interpolant uses monotonic cubic splines to find the value of new points. (PCHIP stands for Piecewise Cubic Hermite Interpolating Polynomial). Parameters
 xndarray
A 1D array of monotonically increasing real values.
x
cannot include duplicate values (otherwise f is overspecified) yndarray
A 1D array of real values.
y
’s length along the interpolation axis must be equal to the length ofx
. If ND array, useaxis
parameter to select correct axis. axisint, optional
Axis in the y array corresponding to the xcoordinate values.
 extrapolatebool, optional
Whether to extrapolate to outofbounds points based on first and last intervals, or to return NaNs.
See also
CubicHermiteSpline
Piecewisecubic interpolator.
Akima1DInterpolator
Akima 1D interpolator.
CubicSpline
Cubic spline data interpolator.
PPoly
Piecewise polynomial in terms of coefficients and breakpoints.
Notes
The interpolator preserves monotonicity in the interpolation data and does not overshoot if the data is not smooth.
The first derivatives are guaranteed to be continuous, but the second derivatives may jump at \(x_k\).
Determines the derivatives at the points \(x_k\), \(f'_k\), by using PCHIP algorithm [1].
Let \(h_k = x_{k+1}  x_k\), and \(d_k = (y_{k+1}  y_k) / h_k\) are the slopes at internal points \(x_k\). If the signs of \(d_k\) and \(d_{k1}\) are different or either of them equals zero, then \(f'_k = 0\). Otherwise, it is given by the weighted harmonic mean
\[\frac{w_1 + w_2}{f'_k} = \frac{w_1}{d_{k1}} + \frac{w_2}{d_k}\]where \(w_1 = 2 h_k + h_{k1}\) and \(w_2 = h_k + 2 h_{k1}\).
The end slopes are set using a onesided scheme [2].
References
 1
F. N. Fritsch and R. E. Carlson, Monotone Piecewise Cubic Interpolation, SIAM J. Numer. Anal., 17(2), 238 (1980). DOI:10.1137/0717021.
 2
see, e.g., C. Moler, Numerical Computing with Matlab, 2004. DOI:10.1137/1.9780898717952
 Attributes
 axis
 c
 extrapolate
 x
Methods
__call__
(self, x[, nu, extrapolate])Evaluate the piecewise polynomial or its derivative.
derivative
(self[, nu])Construct a new piecewise polynomial representing the derivative.
antiderivative
(self[, nu])Construct a new piecewise polynomial representing the antiderivative.
roots
(self[, discontinuity, extrapolate])Find real roots of the the piecewise polynomial.