SciPy scipy.interpolate.interp1d Funktion
-
Syntax von
scipy.interpolate.interp1d()
zum Interpolieren von Datenpunkten: -
Beispielcode:
1d Lineare Interpolation
zwischen Datenpunkten mitscipy.interpolate.interp1d()
-
Beispielcode: Setzen Sie den Parameter
kind
in 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