SciPy

scipy.interpolate.interpn

scipy.interpolate.interpn(points, values, xi, method='linear', bounds_error=True, fill_value=nan)[source]

Multidimensional interpolation on regular grids.

Parameters
pointstuple of ndarray of float, with shapes (m1, ), …, (mn, )

The points defining the regular grid in n dimensions.

valuesarray_like, shape (m1, …, mn, …)

The data on the regular grid in n dimensions.

xindarray of shape (…, ndim)

The coordinates to sample the gridded data at

methodstr, optional

The method of interpolation to perform. Supported are “linear” and “nearest”, and “splinef2d”. “splinef2d” is only supported for 2-dimensional data.

bounds_errorbool, 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_valuenumber, 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_xndarray, shape xi.shape[:-1] + values.shape[ndim:]

Interpolated values at input coordinates.

See also

NearestNDInterpolator

Nearest neighbor interpolation on unstructured data in N dimensions

LinearNDInterpolator

Piecewise linear interpolant on unstructured data in N dimensions

RegularGridInterpolator

Linear and nearest-neighbor Interpolation on a regular grid in arbitrary dimensions

RectBivariateSpline

Bivariate spline approximation over a rectangular mesh

Notes

New in version 0.14.

Examples

Evaluate a simple example function on the points of a regular 3-D grid:

>>> from scipy.interpolate import interpn
>>> def value_func_3d(x, y, z):
...     return 2 * x + 3 * y - z
>>> x = np.linspace(0, 5)
>>> y = np.linspace(0, 5)
>>> z = np.linspace(0, 5)
>>> points = (x, y, z)
>>> values = value_func_3d(*np.meshgrid(*points))

Evaluate the interpolating function at a point

>>> point = np.array([2.21, 3.12, 1.15])
>>> print(interpn(points, values, point))
[11.72]

Previous topic

scipy.interpolate.interp2d.__call__

Next topic

scipy.interpolate.RegularGridInterpolator