{ } Raw JSON

bundles / scipy latest / docs

Doc

Interpolation (scipy.interpolate)

docs/tutorial: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**                           |
+==================+=========================+==============================+========================+=======================================+
|                  | linear                  | `numpy.interp`               | piecewise continuous   | Alternatively,                        |
|                  |                         |                              |                        | ``make_interp_spline(..., k=1)``      |
+                  +-------------------------+------------------------------+------------------------+---------------------------------------+
|                  | cubic spline            | `CubicSpline`                | 2nd derivative         |                                       |
+                  +-------------------------+------------------------------+------------------------+---------------------------------------+
|       1D         | 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                   |
+------------------+-------------------------+------------------------------+------------------------+---------------------------------------+
|                  | nearest                 |                              |                        |  method='nearest'                     |
+                  +-------------------------+                              +                        +---------------------------------------+
| N-D regular      | linear                  | `RegularGridInterpolator`    |                        |  method='linear'                      |
+ (*rectilinear*)  +-------------------------+                              +------------------------+---------------------------------------+
| grid             | splines                 |                              | 2nd derivatives        |  method='cubic', 'quintic'            |
+                  +-------------------------+                              +------------------------+---------------------------------------+
|                  | monotone splines        |                              | 1st derivatives        |  method='pchip'                       |
+------------------+-------------------------+------------------------------+------------------------+---------------------------------------+
|                  | nearest                 | `NearestNDInterpolator`      |                        |                                       |
+                  +-------------------------+------------------------------+                        +                                       +
|  N-D scattered   | linear                  | `LinearNDInterpolator`       |                        | alias: `griddata`                     |
+                  +-------------------------+------------------------------+------------------------+                                       +
|                  | cubic (2D only)         | `CloughTocher2DInterpolator` | 1st derivatives        |                                       |
+                  +-------------------------+------------------------------+------------------------+---------------------------------------+
|                  | radial basis function   | `RBFInterpolator`            |                        |                                       |
+------------------+-------------------------+------------------------------+------------------------+---------------------------------------+

Smoothing and approximation of data

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

Further details are given in the links below