So führen sie eine lineare interpolation in python durch (mit beispiel)


Bei der linearen Interpolation wird ein unbekannter Wert einer Funktion zwischen zwei bekannten Werten geschätzt.

Bei zwei bekannten Werten (x 1 , y 1 ) und (x 2 , y 2 ) können wir den y-Wert für einen Punkt x mithilfe der folgenden Formel schätzen:

y = y 1 + (xx 1 )(y 2 -y 1 )/(x 2 -x 1 )

Wir können die folgende grundlegende Syntax verwenden, um eine lineare Interpolation in Python durchzuführen:

 import scipy. interpolate

y_interp = scipy. interpolate . interp1d (x,y)

#find y-value associated with x-value of 13
print (y_interp( 13 ))

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: lineare Interpolation in Python

Angenommen, wir haben die folgenden zwei Wertelisten in Python:

 x = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
y = [4, 7, 11, 16, 22, 29, 38, 49, 63, 80]

Wir können ein schnelles X-gegen-Y-Diagramm erstellen:

 import matplotlib. pyplot as plt

#create plot of x vs. y
plt. plot (x, y, ' -ob ')

Nehmen wir nun an, wir möchten den y-Wert ermitteln, der einem neuen x-Wert von 13 zugeordnet ist.

Wir können dazu den folgenden Code verwenden:

 import scipy. interpolate
y_interp = scipy. interpolate . interp1d (x,y)

#find y-value associated with x-value of 13
print (y_interp( 13 ))

33.5

Der geschätzte y-Wert beträgt 33,5 .

Wenn wir den Punkt (13, 33.5) zu unserem Diagramm hinzufügen, scheint er recht gut mit der Funktion übereinzustimmen:

 import matplotlib. pyplot as plt

#create plot of x vs. y
plt. plot (x, y, ' -ob ')

#add estimated y-value to plot
plt. plot (13, 33.5, ' ro ')

Wir können genau diese Formel verwenden, um eine lineare Interpolation für jeden neuen x-Wert durchzuführen.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:

So beheben Sie KeyError in Pandas
So beheben Sie: ValueError: Float NaN kann nicht in int konvertiert werden
So beheben Sie: ValueError: Operanden konnten nicht mit Formen übertragen werden

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert