scipy.interpolate.NearestNDInterpolator#
- class scipy.interpolate.NearestNDInterpolator(x, y, rescale=False, tree_options=None)[source]#
NearestNDInterpolator(x, y).
Nearest-neighbor interpolation in N > 1 dimensions.
New in version 0.9.
- Parameters
- x(Npoints, Ndims) ndarray of floats
Data point coordinates.
- y(Npoints,) ndarray of float or complex
Data values.
- rescaleboolean, optional
Rescale points to unit cube before performing interpolation. This is useful if some of the input dimensions have incommensurable units and differ by many orders of magnitude.
New in version 0.14.0.
- tree_optionsdict, optional
Options passed to the underlying
cKDTree.New in version 0.17.0.
See also
griddataInterpolate unstructured D-D data.
LinearNDInterpolatorPiecewise linear interpolant in N dimensions.
CloughTocher2DInterpolatorPiecewise cubic, C1 smooth, curvature-minimizing interpolant in 2D.
Notes
Uses
scipy.spatial.cKDTreeExamples
We can interpolate values on a 2D plane:
>>> from scipy.interpolate import NearestNDInterpolator >>> import matplotlib.pyplot as plt >>> rng = np.random.default_rng() >>> x = rng.random(10) - 0.5 >>> y = rng.random(10) - 0.5 >>> z = np.hypot(x, y) >>> X = np.linspace(min(x), max(x)) >>> Y = np.linspace(min(y), max(y)) >>> X, Y = np.meshgrid(X, Y) # 2D grid for interpolation >>> interp = NearestNDInterpolator(list(zip(x, y)), z) >>> Z = interp(X, Y) >>> plt.pcolormesh(X, Y, Z, shading='auto') >>> plt.plot(x, y, "ok", label="input point") >>> plt.legend() >>> plt.colorbar() >>> plt.axis("equal") >>> plt.show()
Methods
__call__(*args)Evaluate interpolator at given points.