SciPy

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.
PiecewisePolynomial(xi, yi[, orders, ...]) Piecewise polynomial curve specified by points and derivatives
PchipInterpolator(x, y[, axis, extrapolate]) PCHIP 1-d monotonic cubic interpolation
barycentric_interpolate(xi, yi, x[, axis]) Convenience function for polynomial interpolation.
krogh_interpolate(xi, yi, x[, der, axis]) Convenience function for polynomial interpolation.
piecewise_polynomial_interpolate(xi, yi, x) Convenience function for piecewise polynomial interpolation.
pchip_interpolate(xi, yi, x[, der, axis]) Convenience function for pchip interpolation.
Akima1DInterpolator(x, y) Akima interpolator
PPoly(c, x[, extrapolate]) Piecewise polynomial in terms of coefficients and breakpoints
BPoly(c, x[, extrapolate]) 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(points, values) Nearest-neighbour interpolation in N dimensions.
CloughTocher2DInterpolator(points, values[, tol]) Piecewise cubic, C1 smooth, curvature-minimizing interpolant in 2D.
Rbf(*args) A class for radial basis function approximation/interpolation of n-dimensional scattered data.
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.

1-D Splines

UnivariateSpline(x, y[, w, bbox, k, s]) One-dimensional smoothing spline fit to a given set of data points.
InterpolatedUnivariateSpline(x, y[, w, bbox, k]) 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.

The above univariate spline classes have the following methods:

UnivariateSpline.__call__(x[, nu]) Evaluate spline (or its nu-th derivative) at positions x.
UnivariateSpline.derivatives(x) Return all derivatives of the spline at the point x.
UnivariateSpline.integral(a, b) Return definite integral of the spline between two given points.
UnivariateSpline.roots() Return the zeros of the spline.
UnivariateSpline.derivative([n]) Construct a new spline representing the derivative of this spline.
UnivariateSpline.antiderivative([n]) Construct a new spline representing the antiderivative of this spline.
UnivariateSpline.get_coeffs() Return spline coefficients.
UnivariateSpline.get_knots() Return positions of (boundary and interior) knots of the spline.
UnivariateSpline.get_residual() Return weighted sum of squared residuals of the spline approximation: sum((w[i] * (y[i]-s(x[i])))**2, axis=0).
UnivariateSpline.set_smoothing_factor(s) Continue spline computation with the given smoothing factor s and with the knots found at the last call.

Functional interface to FITPACK functions:

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

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.