NearestNDInterpolator#
- class scipy.interpolate.NearestNDInterpolator(x, y, rescale=False, tree_options=None)[Quelle]#
Nächstliegender Nachbar-Interpolator in N > 1 Dimensionen.
- Parameter:
- x(npoints, ndims) 2-D ndarray von Floats
Koordinaten der Datenpunkte.
- y(npoints, ) 1-D ndarray von Float oder Komplex
Datenwerte.
- rescaleboolean, optional
Skaliert die Punkte auf einen Einheitswürfel, bevor die Interpolation durchgeführt wird. Dies ist nützlich, wenn einige der Eingabedimensionen inkommensurable Einheiten haben und sich um viele Größenordnungen unterscheiden.
Hinzugefügt in Version 0.14.0.
- tree_optionsdict, optional
Optionen, die an den zugrundeliegenden
cKDTreeübergeben werden.Hinzugefügt in Version 0.17.0.
Methoden
__call__(*args, **query_options)Interpolationsfunktion an gegebenen Punkten auswerten.
Siehe auch
griddataInterpoliert unstrukturierte D-D-Daten.
LinearNDInterpolatorStückweise lineare Interpolation in N Dimensionen.
CloughTocher2DInterpolatorStückweise kubischer, C1-glatter, Krümmungsminimierender Interpolator in 2D.
interpnInterpolation auf einem regulären Gitter oder einem rechtwinkligen Gitter.
RegularGridInterpolatorInterpolator auf einem regulären oder rechtwinkligen Gitter in beliebigen Dimensionen (
interpnumschließt diese Klasse).
Hinweise
Verwendet
scipy.spatial.cKDTreeHinweis
Für Daten auf einem regulären Gitter verwenden Sie stattdessen
interpn.Beispiele
Wir können Werte auf einer 2D-Ebene interpolieren
>>> from scipy.interpolate import NearestNDInterpolator >>> import numpy as np >>> 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()