SciPy scipy.interpolate.interp1d Funktion

Suraj Joshi 30 Januar 2023
  1. Syntax von scipy.interpolate.interp1d() zum Interpolieren von Datenpunkten:
  2. Beispielcode: 1d Lineare Interpolation zwischen Datenpunkten mit scipy.interpolate.interp1d()
  3. Beispielcode: Setzen Sie den Parameter kind in der Methode scipy.interpolate.interp1d()
SciPy scipy.interpolate.interp1d Funktion

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:

1d Interpolation unter Verwendung der Scipy-Interp1d-Methode

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:

Stellen Sie den Art-Parameter in der 1d-Interpolation mit der scipy interp1d-Methode ein

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 avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn