scipy.interpolate.

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

griddata

Interpoliert unstrukturierte D-D-Daten.

NearestNDInterpolator

Nearest-Neighbor-Interpolator in N Dimensionen.

CloughTocher2DInterpolator

Stückweise kubischer, C1-glatter, Krümmungsminimierender Interpolator in 2D.

interpn

Interpolation auf einem regulären Gitter oder einem rechtwinkligen Gitter.

RegularGridInterpolator

Interpolator auf einem regulären oder rechtwinkligen Gitter in beliebigen Dimensionen (interpn umschließ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()
../../_images/scipy-interpolate-LinearNDInterpolator-1.png