interp1d#
- class scipy.interpolate.interp1d(x, y, kind='linear', axis=-1, copy=True, bounds_error=None, fill_value=nan, assume_sorted=False)[Quelle]#
Interpoliert eine 1-D-Funktion (veraltet).
Veraltet
Diese Klasse gilt als veraltet und wird keine Updates mehr erhalten. Obwohl wir derzeit keine Pläne haben, sie zu entfernen, empfehlen wir, dass neuer Code modernere Alternativen verwendet. Eine Anleitung zu den vorgesehenen Ersetzungen für
interp1dfinden Sie unter 1-D-Interpolation.x und y sind Arrays von Werten, die zur Annäherung an eine Funktion f verwendet werden:
y = f(x). Diese Klasse gibt eine Funktion zurück, deren Aufrufmethode Interpolation verwendet, um den Wert neuer Punkte zu ermitteln.- Parameter:
- x(npoints, ) array_like
Ein 1-D-Array von reellen Werten.
- y(…, npoints, …) array_like
Ein N-D-Array von reellen Werten. Die Länge von y entlang der Interpolationsachse muss gleich der Länge von x sein. Verwenden Sie den Parameter
axis, um die richtige Achse auszuwählen. Im Gegensatz zu anderen Interpolatoren ist die Standard-Interpolationsachse die letzte Achse von y.- kindstr oder int, optional
Gibt die Art der Interpolation als String oder als Integer an, der die Reihenfolge des zu verwendenden Spline-Interpolators angibt. Der String muss einer der folgenden sein: ‘linear’, ‘nearest’, ‘nearest-up’, ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘previous’ oder ‘next’. ‘zero’, ‘slinear’, ‘quadratic’ und ‘cubic’ beziehen sich auf eine Spline-Interpolation der nullten, ersten, zweiten oder dritten Ordnung; ‘previous’ und ‘next’ geben einfach den vorherigen oder nächsten Wert des Punkts zurück; ‘nearest-up’ und ‘nearest’ unterscheiden sich bei der Interpolation von Halbganzzahlen (z. B. 0.5, 1.5), wobei ‘nearest-up’ aufrundet und ‘nearest’ abrundet. Standard ist ‘linear’.
- axisint, optional
Achse im Array
y, die den x-Koordinatenwerten entspricht. Im Gegensatz zu anderen Interpolatoren ist der Standardwertaxis=-1.- copybool, optional
Wenn
True, erstellt die Klasse interne Kopien von x und y. WennFalse, werden Referenzen aufxundyverwendet, wenn möglich. Standard ist Kopieren.- bounds_errorbool, optional
Wenn True, wird ein ValueError ausgelöst, wenn eine Interpolation für einen Wert außerhalb des Bereichs von x versucht wird (wo Extrapolation erforderlich ist). Wenn False, werden Werte außerhalb der Grenzen mit
fill_valuebelegt. Standardmäßig wird ein Fehler ausgelöst, es sei denn,fill_value="extrapolate".- fill_valuearray-like oder (array-like, array-like) oder „extrapolate“, optional
Wenn ein ndarray (oder float), wird dieser Wert verwendet, um Punkte außerhalb des Datenbereichs aufzufüllen. Wenn nicht angegeben, ist der Standardwert NaN. Der array-like muss ordnungsgemäß auf die Dimensionen der Nicht-Interpolationsachsen broadcasten.
Wenn ein Tupel aus zwei Elementen, dann wird das erste Element als Füllwert für
x_new < x[0]und das zweite Element fürx_new > x[-1]verwendet. Alles, was kein 2-Element-Tupel ist (z. B. eine Liste oder ein ndarray, unabhängig von seiner Form), wird als einzelnes array-like Argument betrachtet, das sowohl für untere als auch für obere Grenzen verwendet wird alsbelow, above = fill_value, fill_value. Die Verwendung eines Tupels aus zwei Elementen oder eines ndarray erfordertbounds_error=False.Hinzugefügt in Version 0.17.0.
Wenn „extrapolate“, werden Punkte außerhalb des Datenbereichs extrapoliert.
Hinzugefügt in Version 0.17.0.
- assume_sortedbool, optional
Wenn False, können die Werte von x in beliebiger Reihenfolge vorliegen und werden zuerst sortiert. Wenn True, muss x ein Array von monoton steigenden Werten sein.
- Attribute:
fill_valueDer Füllwert.
Methoden
__call__(x)Evaluiere den Interpolanten
Siehe auch
splrep,splevSpline-Interpolation/-Glättung basierend auf FITPACK.
UnivariateSplineEin objektorientierter Wrapper der FITPACK-Routinen.
interp2d2-D-Interpolation
Hinweise
Der Aufruf von
interp1dmit NaNs in den Eingabewerten führt zu undefiniertem Verhalten.Die Eingabewerte x und y müssen in float-Werte wie int oder float umwandelbar sein.
Wenn die Werte in x nicht eindeutig sind, ist das resultierende Verhalten undefiniert und spezifisch für die Wahl von kind, d. h. eine Änderung von kind ändert das Verhalten bei Duplikaten.
Beispiele
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy import interpolate >>> x = np.arange(0, 10) >>> y = np.exp(-x/3.0) >>> f = interpolate.interp1d(x, y)
>>> xnew = np.arange(0, 9, 0.1) >>> ynew = f(xnew) # use interpolation function returned by `interp1d` >>> plt.plot(x, y, 'o', xnew, ynew, '-') >>> plt.show()