Wie man Daten mit SciPy interpoliert.
Hier ist eine schrittweise Anleitung, wie man Daten mit SciPy interpoliert:
Schritt 1: Importieren der erforderlichen Bibliotheken
Zu Beginn müssen die erforderlichen Bibliotheken importiert werden: NumPy und SciPy. NumPy wird für numerische Operationen verwendet, während SciPy Interpolationsfunktionen bereitstellt.
import numpy as np
from scipy.interpolate import interp1d
Schritt 2: Daten vorbereiten
Als nächstes müssen die Daten vorbereitet werden, die interpoliert werden sollen. Dies kann durch Erstellen von zwei Arrays erfolgen: eines für die x-Werte und ein weiteres für die entsprechenden y-Werte.
x = np.array([1, 2, 3, 4, 5]) # x-Werte
y = np.array([2, 4, 1, 6, 8]) # y-Werte
Schritt 3: Eine Interpolationsmethode auswählen
In SciPy stehen verschiedene Interpolationsmethoden zur Verfügung. Die häufigsten sind lineare, polynomiale und Spline-Interpolation. Wählen Sie die Methode aus, die Ihren Daten und Anforderungen entspricht.
Für dieses Tutorial verwenden wir die lineare Interpolation. Die lineare Interpolation geht von einer geraden Linie zwischen zwei Datenpunkten aus.
Schritt 4: Eine Interpolationsfunktion erstellen
Um eine Interpolation durchzuführen, müssen Sie eine Interpolationsfunktion mit der interp1d-Funktion von SciPy erstellen. Übergeben Sie die x- und y-Arrays sowie die ausgewählte Interpolationsmethode, um die Funktion zu erstellen.
f = interp1d(x, y, kind='linear')
Schritt 5: Neue Werte interpolieren
Jetzt, da Sie die Interpolationsfunktion haben, können Sie sie verwenden, um interpolierte Werte für beliebige neue x-Werte zu berechnen. Übergeben Sie die gewünschten x-Werte an die Interpolationsfunktion und sie gibt die entsprechenden interpolierten y-Werte zurück.
x_new = np.array([1.5, 2.5, 3.5]) # neue x-Werte
y_new = f(x_new) # interpolierte y-Werte
Schritt 6: Die Ergebnisse visualisieren
Um die Ergebnisse der Interpolation zu visualisieren, können Sie die ursprünglichen Datenpunkte und die interpolierten Werte mit Matplotlib plotten.
import matplotlib.pyplot as plt
plt.plot(x, y, 'o', label='Ursprüngliche Daten')
plt.plot(x_new, y_new, 'x', label='Interpolierte Daten')
plt.legend()
plt.show()
Und das ist es! Sie haben erfolgreich Daten mit SciPy interpoliert.
Hier ist der vollständige Code:
import numpy as np
from scipy.interpolate import interp1d
import matplotlib.pyplot as plt
x = np.array([1, 2, 3, 4, 5]) # x-Werte
y = np.array([2, 4, 1, 6, 8]) # y-Werte
f = interp1d(x, y, kind='linear')
x_new = np.array([1.5, 2.5, 3.5]) # neue x-Werte
y_new = f(x_new) # interpolierte y-Werte
plt.plot(x, y, 'o', label='Ursprüngliche Daten')
plt.plot(x_new, y_new, 'x', label='Interpolierte Daten')
plt.legend()
plt.show()
Fühlen Sie sich frei, den Code gemäß Ihren spezifischen Anforderungen zu ändern und mit verschiedenen Interpolationsmethoden zu experimentieren.