# 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]) | The 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]) | 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.

## Multivariate interpolation

Unstructured data:

`griddata`(points, values, xi[, method, …]) | Interpolate unstructured D-D data.
`LinearNDInterpolator`(points, values[, …]) | Piecewise linear interpolant 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) | 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, …]) | Interpolate over a 2-D grid.

For data on a grid:

`interpn`(points, values, xi[, method, …]) | Multidimensional interpolation on regular grids.
`RegularGridInterpolator`(points, values[, …]) | Interpolation on a regular 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

## 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 B-spline.

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 all derivatives of a B-spline.
`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.

## 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.
`pade`(an, m[, n]) | Return Pade approximation to a polynomial as the ratio of two polynomials.

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

scipy.integrate.solve_bvp scipy.interpolate.interp1d