interpn#
- scipy.interpolate.interpn(points, values, xi, method='linear', bounds_error=True, fill_value=nan)[Quelle]#
Mehrdimensionale Interpolation auf regelmäßigen oder rechtwinkligen Gittern.
Streng genommen werden nicht alle regelmäßigen Gitter unterstützt – diese Funktion arbeitet auf rechtwinkligen Gittern, d. h. einem rechteckigen Gitter mit gleichmäßiger oder ungleichmäßiger Abstandsverteilung.
- Parameter:
- pointsTupel aus ndarray vom Typ float, mit Formen (m1, ), …, (mn, )
Die Punkte, die das regelmäßige Gitter in n Dimensionen definieren. Die Punkte in jeder Dimension (d. h. jedes Element des Tupels points) müssen strikt aufsteigend oder absteigend sein.
- valuesarray_like, Form (m1, …, mn, …)
Die Daten auf dem regelmäßigen Gitter in n Dimensionen. Komplexe Daten werden akzeptiert.
- xindarray der Form (…, ndim)
Die Koordinaten, an denen die gegitterten Daten abgetastet werden sollen.
- methodstr, optional
Die durchzuführende Interpolationsmethode. Unterstützt werden „linear“, „nearest“, „slinear“, „cubic“, „quintic“, „pchip“ und „splinef2d“. „splinef2d“ wird nur für 2-dimensionale Daten unterstützt.
- bounds_errorbool, optional
Wenn True, wird bei der Anforderung interpolierter Werte außerhalb des Definitionsbereichs der Eingabedaten ein ValueError ausgelöst. Wenn False, wird fill_value verwendet.
- fill_valueZahl, optional
Wenn angegeben, der Wert, der für Punkte außerhalb des Interpolationsbereichs verwendet werden soll. Wenn None, werden Werte außerhalb des Bereichs extrapoliert. Extrapolation wird von der Methode „splinef2d“ nicht unterstützt.
- Rückgabe:
- values_xndarray, Form xi.shape[:-1] + values.shape[ndim:]
Interpolierte Werte an xi. Siehe Hinweise zum Verhalten, wenn
xi.ndim == 1.
Siehe auch
NearestNDInterpolatorNearest-Neighbor-Interpolation auf unstrukturierten Daten in N Dimensionen
LinearNDInterpolatorStückweise lineare Interpolation auf unstrukturierten Daten in N Dimensionen
RegularGridInterpolatorInterpolation auf einem regelmäßigen oder rechtwinkligen Gitter in beliebigen Dimensionen (
interpnwrappt diese Klasse).RectBivariateSplineBivariate Spline-Approximation über einem rechteckigen Netz.
scipy.ndimage.map_coordinatesInterpolation auf Gittern mit gleichem Abstand (geeignet für z. B. N-dimensionale Bildresampling).
Hinweise
Hinzugefügt in Version 0.14.
Falls
xi.ndim == 1, wird eine neue Achse an Position 0 des zurückgegebenen Arrays values_x eingefügt, sodass seine Form stattdessen(1,) + values.shape[ndim:]ist.Wenn die Eingabedaten so beschaffen sind, dass die Eingabedimensionen inkommensurable Einheiten haben und sich um viele Größenordnungen unterscheiden, kann der Interpolant numerische Artefakte aufweisen. Erwägen Sie eine Neuskalierung der Daten vor der Interpolation.
Beispiele
Auswertung einer einfachen Beispiel Funktion an den Punkten eines regelmäßigen 3-D Gitters
>>> import numpy as np >>> from scipy.interpolate import interpn >>> def value_func_3d(x, y, z): ... return 2 * x + 3 * y - z >>> x = np.linspace(0, 4, 5) >>> y = np.linspace(0, 5, 6) >>> z = np.linspace(0, 6, 7) >>> points = (x, y, z) >>> values = value_func_3d(*np.meshgrid(*points, indexing='ij'))
Auswertung der interpolierenden Funktion an einem Punkt
>>> point = np.array([2.21, 3.12, 1.15]) >>> print(interpn(points, values, point)) [12.63]