How do you use linear interpolation in python?

Linear Interpolation is the technique of determining the values of the functions of any intermediate points when the values of two adjacent points are known. Linear interpolation is basically the estimation of an unknown value that falls within two known values. Linear Interpolation is used in various disciplines like statistical, economics, price determination, etc. It is used to fill the gaps in the statistical data for the sake of continuity of information. 

By using the following formula we can Linearly interpolate the given data point 

How do you use linear interpolation in python?

Here (x1, y1) are the coordinates of the first data point. And (x2,y2) are coordinates of the second data point, where x is the point on which we perform interpolation and y is the interpolated value.

Example Problem:

Let’s take an example for better understanding. We have the following data values where x denotes the number and y is the function of the square root of x. Our task is to find the square root of 5.5 (x).

x

1

2

3

4

5

6

y ( f(x) = √x ) 

1

1.4142

1.7320

2

2.2360

2.4494

We can use the Linear Interpolation method here.

1. Find the two adjacent  (x1, y1) ,(x2,y2) from the x. i.e. (5,2.2360) and (6,2.4494).

Where x1 = 5, x2= 6, y1 = 2.2360, y2 = 2.4494, and we interpolate at point x = 5.5.

2. Using the formula y(x)  =  y1  +  (x – x1)  \frac{(y2 – y1) }{ (x2 – x1)}

How do you use linear interpolation in python?

3. After putting the values in the above equation. 

How do you use linear interpolation in python?
y = 2.3427

At x = 5.5 the value of Y will be 2.3427. So by using linear interpolation we can easily determine the value of a function between two intervals.

Approach 1:

Using the formula 

How do you use linear interpolation in python?

Example: Suppose we have a dataset of the population of a city and the year.

X(Year)

2016

2017

2018

2019

2021

Y(Population)

10001

12345

74851

12124

5700

Here, X is the year and Y is the population in any city. Our task to find the population of the city in the year 2020.

We choose our (x1, y1) ,(x2,y2) as x1=2019 , y1=12124, x2=2021,  y2=5700, x = 2020, y = ?

Here (x1, y1) and (x2, y2) are two adjacent points and x is the year for which we want to predict the value of the y population.

Python3

def interpolation(d, x):

    output = d[0][1] + (x - d[0][0]) * ((d[1][1] - d[0][1])/(d[1][0] - d[0][0]))

    return output

data=[[2019, 12124],[2021, 5700]]

year_x=2020

print("Population on year {} is".format(year_x),

             interpolation(data, year_x))

Output

Population on year 2020 is 8912.0

Approach 2:

Using scipy.interpolate.interp1d

Similarly, we can achieve linear interpolation using a scipy library function called interpolate.interp1d.

Syntax : scipy.interpolate.interp1d(x, y, kind=’linear’, axis=- 1, copy=True, bounds_error=None, fill_value=nan, assume_sorted=False)

Sr. no.            

Parameters                        

Description

1.

x

A 1-D array of real values.

2.

y

A N-D array of real values.

3.

kind

i.e. kind of interpolation do you want it can be ‘linear’, ‘nearest’, ‘nearest-up’, ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘previous’, or ‘next’. ‘zero’, ‘slinear’, ‘quadratic’ and ‘cubic’, by defaults it is linear.

4.

axis

Specifies the axis of y along  which we interpolate.

5.

copy

It holds boolean values if True, the class makes internal copies of x and y .

6.

bounds_error

It holds boolean values If True, a ValueError is raised when interpolation is attempted on a value outside the range of x.

Example:

Let’s have a random dataset :

X = [1,2,3,4,5], Y = [11,2.2,3.5,-88,1], and we want to find the value of Y at point 2.5.

Python3

from scipy.interpolate import interp1d

X = [1,2,3,4,5]

Y = [11,2.2,3.5,-88,1]

interpolate_x = 2.5

y_interp = interp1d(X, Y)

print("Value of Y at x = {} is".format(interpolate_x),

      y_interp(interpolate_x))

Output

Value of y at x = 2.5 is 2.85

How do you do interpolation in Python?

interpolate package..
import numpy as np from scipy import interpolate import matplotlib. pyplot as plt x = np. linspace(0, 4, 12) y = np. ... .
xnew = np. linspace(0, 4,30) plt. plot(x, y, 'o', xnew, f(xnew), '-', xnew, f2(xnew), '--') plt. ... .
import matplotlib. pyplot as plt from scipy..

How do you do linear interpolation?

Know the formula for the linear interpolation process. The formula is y = y1 + ((x – x1) / (x2 – x1)) * (y2 – y1), where x is the known value, y is the unknown value, x1 and y1 are the coordinates that are below the known x value, and x2 and y2 are the coordinates that are above the x value.

How do you interpolate in pandas Python?

Example #1: Use interpolate() function to fill the missing values using linear method..
Output :.
Example #2: Use interpolate() function to interpolate the missing values in the backward direction using linear method and putting a limit on maximum number of consecutive Na values that could be filled..
Output :.

What is the meaning of interpolation in Python?

Interpolation is a method for generating points between given points. For example: for points 1 and 2, we may interpolate and find points 1.33 and 1.66. Interpolation has many usage, in Machine Learning we often deal with missing data in a dataset, interpolation is often used to substitute those values.