{ } Raw JSON

bundles / scipy latest / scipy / interpolate / _rgi / interpn

function

scipy.interpolate._rgi:interpn

source: /scipy/interpolate/_rgi.py :645

Signature

def   interpn ( points values xi method = linear bounds_error = True fill_value = nan )

Summary

Multidimensional interpolation on regular or rectilinear grids.

Extended Summary

Strictly speaking, not all regular grids are supported - this function works on rectilinear grids, that is, a rectangular grid with even or uneven spacing.

Parameters

points : tuple of ndarray of float, with shapes (m1, ), ..., (mn, )

The points defining the regular grid in n dimensions. The points in each dimension (i.e. every elements of the points tuple) must be strictly ascending or descending.

values : array_like, shape (m1, ..., mn, ...)

The data on the regular grid in n dimensions. Complex data is accepted.

xi : ndarray of shape (..., ndim)

The coordinates to sample the gridded data at

method : str, optional

The method of interpolation to perform. Supported are "linear", "nearest", "slinear", "cubic", "quintic", "pchip", and "splinef2d". "splinef2d" is only supported for 2-dimensional data.

bounds_error : bool, optional

If True, when interpolated values are requested outside of the domain of the input data, a ValueError is raised. If False, then fill_value is used.

fill_value : number, optional

If provided, the value to use for points outside of the interpolation domain. If None, values outside the domain are extrapolated. Extrapolation is not supported by method "splinef2d".

Returns

values_x : ndarray, shape xi.shape[:-1] + values.shape[ndim:]

Interpolated values at xi. See notes for behaviour when xi.ndim == 1.

Notes

In the case that xi.ndim == 1 a new axis is inserted into the 0 position of the returned array, values_x, so its shape is instead (1,) + values.shape[ndim:].

If the input data is such that input dimensions have incommensurate units and differ by many orders of magnitude, the interpolant may have numerical artifacts. Consider rescaling the data before interpolation.

Examples

Evaluate a simple example function on the points of a regular 3-D grid:
import numpy as np
from scipy.interpolate import interpn
def value_func_3d(x, y, z):
    return 2 * x + 3 * y - z
x = np.linspace(0, 4, 5)
y = np.linspace(0, 5, 6)
z = np.linspace(0, 6, 7)
points = (x, y, z)
values = value_func_3d(*np.meshgrid(*points, indexing='ij'))
Evaluate the interpolating function at a point
point = np.array([2.21, 3.12, 1.15])
print(interpn(points, values, point))
Compare with value at point by function
value_func_3d(*point)
Since the function is linear, the interpolation is exact using linear method.

See also

LinearNDInterpolator

Piecewise linear interpolant on unstructured data in N dimensions

NearestNDInterpolator

Nearest neighbor interpolation on unstructured data in N dimensions

RectBivariateSpline

Bivariate spline approximation over a rectangular mesh

RegularGridInterpolator

interpolation on a regular or rectilinear grid in arbitrary dimensions (interpn wraps this class).

scipy.ndimage.map_coordinates

interpolation on grids with equal spacing (suitable for e.g., N-D image resampling)

Aliases

  • scipy.interpolate.interpn

Referenced by