scipy.interpolate.PchipInterpolator¶
- class scipy.interpolate.PchipInterpolator(x, y, axis=0, extrapolate=None)[source]¶
PCHIP 1-d monotonic cubic interpolation
x and y are arrays of values used to approximate some function f, with y = f(x). The interpolant uses monotonic cubic splines to find the value of new points. (PCHIP stands for Piecewise Cubic Hermite Interpolating Polynomial).
Parameters: x : ndarray
A 1-D array of monotonically increasing real values. x cannot include duplicate values (otherwise f is overspecified)
y : ndarray
A 1-D array of real values. y‘s length along the interpolation axis must be equal to the length of x. If N-D array, use axis parameter to select correct axis.
axis : int, optional
Axis in the y array corresponding to the x-coordinate values.
extrapolate : bool, optional
Whether to extrapolate to ouf-of-bounds points based on first and last intervals, or to return NaNs.
Notes
The first derivatives are guaranteed to be continuous, but the second derivatives may jump at x_k.
Preserves monotonicity in the interpolation data and does not overshoot if the data is not smooth.
Determines the derivatives at the points x_k, d_k, by using PCHIP algorithm:
Let m_k be the slope of the kth segment (between k and k+1) If m_k=0 or m_{k-1}=0 or sgn(m_k) != sgn(m_{k-1}) then d_k == 0 else use weighted harmonic mean:
w_1 = 2h_k + h_{k-1}, w_2 = h_k + 2h_{k-1} 1/d_k = 1/(w_1 + w_2)*(w_1 / m_k + w_2 / m_{k-1})where h_k is the spacing between x_k and x_{k+1}.
Methods
__call__(x[, der, extrapolate]) Evaluate the PCHIP interpolant or its derivative. derivative([der]) Construct a piecewise polynomial representing the derivative.