#### Previous topic

scipy.interpolate.PiecewisePolynomial.extend

#### Next topic

scipy.interpolate.PchipInterpolator.__call__

# scipy.interpolate.PchipInterpolator

class `scipy.interpolate.``PchipInterpolator`(x, y, axis=0, extrapolate=None)

  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.

  See also

  `Akima1DInterpolator`

  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[, nu, extrapolate]) | Evaluate the piecewise polynomial or its derivative :Parameters: x : array_like Points to evaluate the interpolant at.
  `derivative`([nu]) | Construct a new piecewise polynomial representing the derivative.
  `antiderivative`([nu]) | Construct a new piecewise polynomial representing the antiderivative.