scipy.interpolate.

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

NearestNDInterpolator

Nearest-Neighbor-Interpolation auf unstrukturierten Daten in N Dimensionen

LinearNDInterpolator

Stückweise lineare Interpolation auf unstrukturierten Daten in N Dimensionen

RegularGridInterpolator

Interpolation auf einem regelmäßigen oder rechtwinkligen Gitter in beliebigen Dimensionen (interpn wrappt diese Klasse).

RectBivariateSpline

Bivariate Spline-Approximation über einem rechteckigen Netz.

scipy.ndimage.map_coordinates

Interpolation 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]