LinearNDInterpolator#
- class scipy.interpolate.LinearNDInterpolator(points, values, fill_value=np.nan, rescale=False)#
Stückweise lineare Interpolation in N > 1 Dimensionen.
Hinzugefügt in Version 0.9.
- Parameter:
- pointsndarray von Gleitkommazahlen, Form (npoints, ndims); oder Delaunay
2-D-Array von Koordinaten der Datenpunkte oder eine vorab berechnete Delaunay-Triangulierung.
- valuesndarray von Gleitkommazahlen oder komplexen Zahlen, Form (npoints, …), optional
N-D-Array von Datenwerten an den points. Die Länge von values entlang der ersten Achse muss gleich der Länge von points sein. Im Gegensatz zu einigen Interpolatoren kann die Interpolationsachse nicht geändert werden.
- fill_valuefloat, optional
Wert, der für angeforderte Punkte außerhalb der konvexen Hülle der Eingabepunkte verwendet wird. Wenn nicht angegeben, ist der Standardwert
nan.- rescalebool, 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.
Methoden
__call__(xi)Interpolationsfunktion an gegebenen Punkten auswerten.
Siehe auch
griddataInterpoliert unstrukturierte D-D-Daten.
NearestNDInterpolatorNearest-Neighbor-Interpolator 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
Der Interpolator wird konstruiert, indem die Eingabedaten mit Qhull [1] trianguliert werden und auf jedem Dreieck eine lineare baryzentrische Interpolation durchgeführt wird.
Hinweis
Für Daten auf einem regulären Gitter verwenden Sie stattdessen
interpn.Referenzen
Beispiele
Wir können Werte auf einer 2D-Ebene interpolieren
>>> from scipy.interpolate import LinearNDInterpolator >>> 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 = LinearNDInterpolator(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()