SciPy scipy.interpolate.interp1d Funktion
-
Syntax von
scipy.interpolate.interp1d()zum Interpolieren von Datenpunkten: -
Beispielcode:
1d Lineare Interpolationzwischen Datenpunkten mitscipy.interpolate.interp1d() -
Beispielcode: Setzen Sie den Parameter
kindin der Methodescipy.interpolate.interp1d()
Die Klasse Python Scipy scipy.interpolate.interp1d() wird verwendet, um eine eindimensionale Funktion zu interpolieren. Eine eindimensionale Funktion nimmt einen einzelnen Eingabewert als Parameter und gibt einen einzelnen analysierten Ausgabewert zurück.
Normalerweise haben wir eine Reihe von Datenpunkten an diskreten Orten. Jetzt versuchen wir, die Funktion zu approximieren, die y Werte für beliebige gegebene x-Werte zwischen diesen gegebenen Punkten finden kann.
Syntax von scipy.interpolate.interp1d() zum Interpolieren von Datenpunkten:
scipy.interpolate.interp1d(x, y, kind)
Parameter
x |
Array-artig. Es ist der Eingabesatz von Werten, der der Funktion bereitgestellt wird. |
y |
Array-artig. Es ist der basierend auf x definierte Eingabewert. |
kind |
Es ist ein optionaler Parameter. Sie legt die Art der Interpolation fest. Standardmäßig ist es auf linear eingestellt. |
Zurückkehren
Es gibt eine Funktion zurück.
Beispielcode: 1d Lineare Interpolation zwischen Datenpunkten mit scipy.interpolate.interp1d()
import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy import interpolate
x_value = np.array([0, 1, 2, 4])
y_value = np.array([2, 3, 12, 147])
function = scipy.interpolate.interp1d(x_value, y_value)
x_new = np.linspace(0, 4, 10)
plt.scatter(x_value, y_value, color="blue")
plt.plot(x_new, function(x_new), color="black")
plt.xlabel("X-Values")
plt.ylabel("Y-Values")
plt.title("1d Interpolation using scipy interp1d method")
plt.show()
Ausgabe:

Hier versuchen wir, eine Funktion zu interpolieren oder zu erstellen, die die Beziehung zwischen x_value und y_value approximiert. Im obigen Code werden x_value und y_value zufällig genommen. Dann werden die Werte als Argument an die Funktion interp1d übergeben, die die Interpolationsfunktion function bestimmt. Jetzt können wir jeden y_value für jeden gegebenen x_value im Bereich von x_new finden.
Um schließlich zu veranschaulichen, wie die Interpolationsfunktion aussieht, nehmen wir 10 Punkte zwischen 0 und 4 und zeichnen die Linienkurve der Funktion, die durch die schwarze Kurve in der Abbildung dargestellt wird.
Da wir nicht festgelegt haben, welche Art von Kurve wir interpolieren möchten, zeigt uns die Methode interp1d standardmäßig eine lineare gerade Linie zwischen Punkten.
Beispielcode: Setzen Sie den Parameter kind in der Methode scipy.interpolate.interp1d()
import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy import interpolate
x_value = np.array([0, 1, 2, 4])
y_value = np.array([2, 3, 12, 147])
f_linear = scipy.interpolate.interp1d(x_value, y_value)
f_quad = scipy.interpolate.interp1d(x_value, y_value, kind="quadratic")
x_new = np.linspace(0, 4, 4)
plt.scatter(x_value, y_value, color="blue")
plt.plot(x_new, f_linear(x_new), color="black")
plt.plot(x_new, f_quad(x_new), color="green")
plt.xlabel("X-Values")
plt.ylabel("Y-Values")
plt.title("1d Interpolation using scipy interp1d method")
plt.legend(["linear", "quadratic", "data"], loc="best")
plt.show()
Ausgabe:

Das obige Diagramm zeigt Interpolationsfunktionen, die mit linear und quadratic Techniken angenähert wurden. Die schwarze Linie im Diagramm stellt die interpolierte Linie unter Verwendung der linear Methode dar, und die grüne Linie im Diagramm stellt die interpolierte Linie unter Verwendung der quadratic Methode dar.
Zusammenfassend wird also die Klasse interp1d verwendet, um eine Funktion unter Verwendung der bereitgestellten Datenpunkte zu berechnen, und kann jederzeit und überall innerhalb des angegebenen Bereichs unter Verwendung linearer Interpolation berechnet werden.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn