scipy.interpolate.

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 interp1d finden 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 Standardwert axis=-1.

copybool, optional

Wenn True, erstellt die Klasse interne Kopien von x und y. Wenn False, werden Referenzen auf x und y verwendet, 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_value belegt. 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ür x_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 als below, above = fill_value, fill_value. Die Verwendung eines Tupels aus zwei Elementen oder eines ndarray erfordert bounds_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_value

Der Füllwert.

Methoden

__call__(x)

Evaluiere den Interpolanten

Siehe auch

splrep, splev

Spline-Interpolation/-Glättung basierend auf FITPACK.

UnivariateSpline

Ein objektorientierter Wrapper der FITPACK-Routinen.

interp2d

2-D-Interpolation

Hinweise

Der Aufruf von interp1d mit 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()
../../_images/scipy-interpolate-interp1d-1.png