Interpolation (scipy.interpolate)#

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