Jak wykonać interpolację liniową w pythonie (z przykładem)


Interpolacja liniowa to proces szacowania nieznanej wartości funkcji pomiędzy dwiema znanymi wartościami.

Mając dwie znane wartości (x 1 , y 1 ) i (x 2 , y 2 ), możemy oszacować wartość y dla punktu x za pomocą następującego wzoru:

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

Do wykonania interpolacji liniowej w Pythonie możemy użyć następującej podstawowej składni:

 import scipy. interpolate

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

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

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: interpolacja liniowa w Pythonie

Załóżmy, że mamy w Pythonie następujące dwie listy wartości:

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

Możemy stworzyć szybki wykres x kontra y:

 import matplotlib. pyplot as plt

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

Załóżmy teraz, że chcemy znaleźć wartość y powiązaną z nową wartością x wynoszącą 13 .

Możemy w tym celu użyć następującego kodu:

 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

Oszacowana wartość y wynosi 33,5 .

Jeśli dodamy do naszego wykresu punkt (13, 33.5), wydaje się, że całkiem dobrze pasuje on do funkcji:

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

Możemy użyć tego dokładnego wzoru do przeprowadzenia interpolacji liniowej dla dowolnej nowej wartości x.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:

Jak naprawić błąd KeyError w Pandach
Jak naprawić: ValueError: Nie można przekonwertować float NaN na int
Jak naprawić: Błąd wartości: Nie można rozgłaszać argumentów z kształtami

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *