Come eseguire l'interpolazione lineare in python (con esempio)


L’interpolazione lineare è il processo di stima di un valore sconosciuto di una funzione tra due valori noti.

Dati due valori noti (x 1 , y 1 ) e (x 2 , y 2 ), possiamo stimare il valore y per un punto x utilizzando la seguente formula:

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

Possiamo usare la seguente sintassi di base per eseguire l’interpolazione lineare in Python:

 import scipy. interpolate

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

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

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: interpolazione lineare in Python

Supponiamo di avere i seguenti due elenchi di valori in Python:

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

Possiamo creare un rapido grafico x rispetto a y:

 import matplotlib. pyplot as plt

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

Supponiamo ora di voler trovare il valore y associato a un nuovo valore x di 13 .

Possiamo usare il seguente codice per fare questo:

 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

Il valore y stimato risulta essere 33,5 .

Se aggiungiamo il punto (13, 33.5) al nostro grafico, sembra corrispondere abbastanza bene alla funzione:

 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 ')

Possiamo usare questa formula esatta per eseguire l’interpolazione lineare per qualsiasi nuovo valore x.

Risorse addizionali

I seguenti tutorial spiegano come correggere altri errori comuni in Python:

Come correggere l’errore chiave nei Panda
Come risolvere il problema: ValueError: impossibile convertire float NaN in int
Come risolvere il problema: ValueError: non è stato possibile trasmettere gli operandi con le forme

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *