Interpolate between two points python

We can easily plot this on a graph without Python:

Interpolate between two points python

This shows us what the answer should be (13).

But how do we calculate this? First, we find the gradient with this:

Interpolate between two points python

The numbers substituted into the equation give this:

Interpolate between two points python

So we know for 0.625 we increase the Y value by, we increase the X value by 1.

We've been given that Y is 100. We know that 102.5 relates to 17. 100 - 102.5 = -2.5. -2.5 / 0.625 = -4 and then 17 + -4 = 13.

This also works with the other numbers: 100 - 95 = 5, 5 / 0.625 = 8, 5 + 8 = 13.

We can also go backwards using the reciprocal of the gradient (1 / m).

We've been given that X is 13. We know that 102.5 relates to 17. 13 - 17 = -4. -4 / 0.625 = -2.5 and then 102.5 + -2.5 = 100.

How do we do this in python?

def findXPoint(xa,xb,ya,yb,yc):
    m = (xa - xb) / (ya - yb)
    xc = (yc - yb) * m + xb
    return

And to find a Y point given the X point:

def findYPoint(xa,xb,ya,yb,xc):
    m = (ya - yb) / (xa - xb)
    yc = (xc - xb) * m + yb
    return yc

This function will also extrapolate from the data points.


Linear interpolation is the process of estimating an unknown value of a function between two known values.

Given two known values (x1, y1) and (x2, y2), we can estimate the y-value for some point x by using the following formula:

y = y1 + (x-x1)(y2-y1)/(x2-x1)

We can use the following basic syntax to perform linear interpolation 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))

The following example shows how to use this syntax in practice.

Example: Linear Interpolation in Python

Suppose we have the following two lists of values in Python:

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

We can create a quick plot x vs. y:

import matplotlib.pyplot as plt

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

Interpolate between two points python

Now suppose that we’d like to find the y-value associated with a new x-value of 13.

We can use the following code to do so:

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

The estimated y-value turns out to be 33.5.

If we add the point (13, 33.5) to our plot, it appears to match the function quite well:

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

Interpolate between two points python

We can use this exact formula to perform linear interpolation for any new x-value.

Additional Resources

The following tutorials explain how to fix other common errors in Python:

How to Fix KeyError in Pandas
How to Fix: ValueError: cannot convert float NaN to integer
How to Fix: ValueError: operands could not be broadcast together with shapes

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 interpolate between two points?

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?

DataFrame-interpolate() function.
'linear': Ignore the index and treat the values as equally spaced. ... .
'time': Works on daily and higher resolution data to interpolate given length of interval..
'index', 'values': use the actual numerical values of the index..
'pad': Fill in NaNs using existing values..

What is interpolation Scipy?

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.