Skip to main content
`Ctrl`+`K`

# Interpolation (`scipy.interpolate`)

Sub-package for objects used in interpolation.

As listed below, this sub-package contains spline functions and classes, 1-D and multidimensional (univariate and multivariate) interpolation classes, Lagrange and Taylor polynomial interpolators, and wrappers for FITPACK and DFITPACK functions.

## Univariate interpolation

`interp1d`(x, y[, kind, axis, copy, ...]) | Interpolate a 1-D function.
`BarycentricInterpolator`(xi[, yi, axis, wi, rng]) | Interpolating polynomial for a set of points.
`KroghInterpolator`(xi, yi[, axis]) | Interpolating polynomial for a set of points.
`barycentric_interpolate`(xi, yi, x[, axis, ...]) | Convenience function for polynomial interpolation.
`krogh_interpolate`(xi, yi, x[, der, axis]) | Convenience function for polynomial interpolation.
`pchip_interpolate`(xi, yi, x[, der, axis]) | Convenience function for pchip interpolation.
`CubicHermiteSpline`(x, y, dydx[, axis, ...]) | Piecewise-cubic interpolator matching values and first derivatives.
`PchipInterpolator`(x, y[, axis, extrapolate]) | PCHIP 1-D monotonic cubic interpolation.
`Akima1DInterpolator`(x, y[, axis, method, ...]) | Akima interpolator
`CubicSpline`(x, y[, axis, bc_type, extrapolate]) | Cubic spline data interpolator.
`PPoly`(c, x[, extrapolate, axis]) | Piecewise polynomial in terms of coefficients and breakpoints
`BPoly`(c, x[, extrapolate, axis]) | Piecewise polynomial in terms of coefficients and breakpoints.
`FloaterHormannInterpolator`(points, values, *) | Floater-Hormann barycentric rational interpolation.

## Multivariate interpolation

Unstructured data:

`griddata`(points, values, xi[, method, ...]) | Interpolate unstructured D-D data.
`LinearNDInterpolator`(points, values[, ...]) | Piecewise linear interpolator in N > 1 dimensions.
`NearestNDInterpolator`(x, y[, rescale, ...]) | NearestNDInterpolator(x, y).
`CloughTocher2DInterpolator`(points, values[, ...]) | CloughTocher2DInterpolator(points, values, tol=1e-6).
`RBFInterpolator`(y, d[, neighbors, ...]) | Radial basis function (RBF) interpolation in N dimensions.
`Rbf`(*args, **kwargs) | A class for radial basis function interpolation of functions from N-D scattered data to an M-D domain.
`interp2d`(x, y, z[, kind, copy, ...]) | Removed in version 1.14.0.

For data on a grid:

`interpn`(points, values, xi[, method, ...]) | Multidimensional interpolation on regular or rectilinear grids.
`RegularGridInterpolator`(points, values[, ...]) | Interpolator on a regular or rectilinear grid in arbitrary dimensions.
`RectBivariateSpline`(x, y, z[, bbox, kx, ky, s]) | Bivariate spline approximation over a rectangular mesh.

See also

`scipy.ndimage.map_coordinates`

Tensor product polynomials:

`NdPPoly`(c, x[, extrapolate]) | Piecewise tensor product polynomial
`NdBSpline`(t, c, k, *[, extrapolate]) | Tensor product spline object.

## 1-D Splines

`BSpline`(t, c, k[, extrapolate, axis]) | Univariate spline in the B-spline basis.
`make_interp_spline`(x, y[, k, t, bc_type, ...]) | Compute the (coefficients of) interpolating B-spline.
`make_lsq_spline`(x, y, t[, k, w, axis, ...]) | Compute the (coefficients of) an LSQ (Least SQuared) based fitting B-spline.
`make_smoothing_spline`(x, y[, w, lam]) | Compute the (coefficients of) smoothing cubic spline function using `lam` to control the tradeoff between the amount of smoothness of the curve and its proximity to the data.
`generate_knots`(x, y, *[, w, xb, xe, k, s, nest]) | Replicate FITPACK's constructing the knot vector.
`make_splrep`(x, y, *[, w, xb, xe, k, s, t, nest]) | Find the B-spline representation of a 1D function.
`make_splprep`(x, *[, w, u, ub, ue, k, s, t, nest]) | Find a smoothed B-spline representation of a parametric N-D curve.

Functional interface to FITPACK routines:

`splrep`(x, y[, w, xb, xe, k, task, s, t, ...]) | Find the B-spline representation of a 1-D curve.
`splprep`(x[, w, u, ub, ue, k, task, s, t, ...]) | Find the B-spline representation of an N-D curve.
`splev`(x, tck[, der, ext]) | Evaluate a B-spline or its derivatives.
`splint`(a, b, tck[, full_output]) | Evaluate the definite integral of a B-spline between two given points.
`sproot`(tck[, mest]) | Find the roots of a cubic B-spline.
`spalde`(x, tck) | Evaluate a B-spline and all its derivatives at one point (or set of points) up to order k (the degree of the spline), being 0 the spline itself.
`splder`(tck[, n]) | Compute the spline representation of the derivative of a given spline
`splantider`(tck[, n]) | Compute the spline for the antiderivative (integral) of a given spline.
`insert`(x, tck[, m, per]) | Insert knots into a B-spline.

Object-oriented FITPACK interface:

`UnivariateSpline`(x, y[, w, bbox, k, s, ext, ...]) | 1-D smoothing spline fit to a given set of data points.
`InterpolatedUnivariateSpline`(x, y[, w, ...]) | 1-D interpolating spline for a given set of data points.
`LSQUnivariateSpline`(x, y, t[, w, bbox, k, ...]) | 1-D spline with explicit internal knots.

## 2-D Splines

For data on a grid:

`RectBivariateSpline`(x, y, z[, bbox, kx, ky, s]) | Bivariate spline approximation over a rectangular mesh.
`RectSphereBivariateSpline`(u, v, r[, s, ...]) | Bivariate spline approximation over a rectangular mesh on a sphere.

For unstructured data:

`BivariateSpline`() | Base class for bivariate splines.
`SmoothBivariateSpline`(x, y, z[, w, bbox, ...]) | Smooth bivariate spline approximation.
`SmoothSphereBivariateSpline`(theta, phi, r[, ...]) | Smooth bivariate spline approximation in spherical coordinates.
`LSQBivariateSpline`(x, y, z, tx, ty[, w, ...]) | Weighted least-squares bivariate spline approximation.
`LSQSphereBivariateSpline`(theta, phi, r, tt, tp) | Weighted least-squares bivariate spline approximation in spherical coordinates.

Low-level interface to FITPACK functions:

`bisplrep`(x, y, z[, w, xb, xe, yb, ye, kx, ...]) | Find a bivariate B-spline representation of a surface.
`bisplev`(x, y, tck[, dx, dy]) | Evaluate a bivariate B-spline and its derivatives.

## Rational Approximation

`pade`(an, m[, n]) | Return Pade approximation to a polynomial as the ratio of two polynomials.
`AAA`(x, y, *[, rtol, max_terms, clean_up, ...]) | AAA real or complex rational approximation.

## Additional tools

`lagrange`(x, w) | Return a Lagrange interpolating polynomial.
`approximate_taylor_polynomial`(f, x, degree, ...) | Estimate the Taylor polynomial of f at x by polynomial fitting.

See also

`scipy.ndimage.map_coordinates`, `scipy.ndimage.spline_filter`, `scipy.signal.resample`, scipy.signal.bspline, `scipy.signal.gauss_spline`, `scipy.signal.qspline1d`, `scipy.signal.cspline1d`, `scipy.signal.qspline1d_eval`, `scipy.signal.cspline1d_eval`, `scipy.signal.qspline2d`, `scipy.signal.cspline2d`.

`pchip` is an alias of `PchipInterpolator` for backward compatibility (should not be used in new code).