Interpolation (scipy.interpolate) — SciPy v1.15.3 Manual (original) (raw)

There are several general facilities available in SciPy for interpolation and smoothing for data in 1, 2, and higher dimensions. The choice of a specific interpolation routine depends on the data: whether it is one-dimensional, is given on a structured grid, or is unstructured. One other factor is the desired smoothness of the interpolator. In short, routines recommended for interpolation can be summarized as follows:

kind routine continuity comment
1D linear numpy.interp piecewise continuous Alternatively,make_interp_spline(..., k=1)
cubic spline CubicSpline 2nd derivative
monotone cubic spline PchipInterpolator 1st derivative non-overshooting
non-cubic spline make_interp_spline (k-1)th derivative k=3 is equivalent to CubicSpline
nearest interp1d kind=’nearest’, ‘previous’, ‘next’
N-D curve nearest, linear, spline make_interp_spline (k-1)th derivative use N-dim y array
N-D regular (rectilinear) grid nearest RegularGridInterpolator method=’nearest’
linear method=’linear’
splines 2nd derivatives method=’cubic’, ‘quintic’
monotone splines 1st derivatives method=’pchip’
N-D scattered nearest NearestNDInterpolator alias: griddata
linear LinearNDInterpolator
cubic (2D only) CloughTocher2DInterpolator 1st derivatives
radial basis function RBFInterpolator

Smoothing and approximation of data#

1D spline functions make_smoothing_spline classic smoothing splines, GVC penalty
make_splrep automated/semi-automated knot selection
spine curves in N-D make_splprep
unconstrained least squares spline fit make_lsq_spline
2D smoothing surfaces bisplrep scattered data
RectBivariateSpline gridded data
Radial basis functions in N-D RBFInterpolator

Further details are given in the links below