Interpolation (scipy.interpolate)

Sub-package for objects used in interpolation.

As listed below, this sub-package contains spline functions and classes, one-dimensional and multi-dimensional (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-dimensional data.

LinearNDInterpolator(points, values[, …])

Piecewise linear interpolant in N dimensions.

NearestNDInterpolator(x, y)

Nearest-neighbour interpolation in N dimensions.

CloughTocher2DInterpolator(points, values[, tol])

Piecewise cubic, C1 smooth, curvature-minimizing interpolant in 2D.


A class for radial basis function interpolation of functions from n-dimensional scattered data to an m-dimensional 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.

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 1-D curve.

splprep(x[, w, u, ub, ue, k, task, s, t, …])

Find the B-spline representation of an N-dimensional 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, …])

One-dimensional smoothing spline fit to a given set of data points.

InterpolatedUnivariateSpline(x, y[, w, …])

One-dimensional interpolating spline for a given set of data points.

LSQUnivariateSpline(x, y, t[, w, bbox, k, …])

One-dimensional 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:


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.

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