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

For data smoothing, functions are provided for 1- and 2-D data using cubic splines, based on the FORTRAN library FITPACK.

Additionally, routines are provided for interpolation / smoothing using radial basis functions with several kernels.

Further details are given in the links below.