# Best JAVA, .NET, PHP, ANGULAR, PYTHON, QA, DJANGO Tutorials.

What is Interpolation in SCIPY:-

Interpolation is the process of finding a value between two points on a line or a curve.

This tool, interpolation, is not only useful in statistics, but is also useful in science, business, or when there is a need to predict values that fall within two existing data points.

scipy.interpolate package will be used for interpolation

Without interpolation first we show plot using x and y co-ordinate

import numpy as np
from scipy import interpolate
import matplotlib.pyplot as plt
x = np.linspace(0, 4, 12)
y = np.cos(x**2/3+4)
print(x,y)
plt.plot(x, y,’o’)

plt.show()

## 1-D Interpolation

he interp1d class in the scipy.interpolate is a convenient method to create a function based on fixed data points, which can be evaluated anywhere within the domain defined by the given data using linear interpolation.

Using the interp1d function, we created two functions f1 and f2. These functions, for a given input x returns y. The third variable kind represents the type of interpolation technique. 'Linear', 'Nearest', 'Zero', 'Linear', 'Quadratic', 'Cubic' are a few techniques of interpolation.

import numpy as np
from scipy import interpolate
import matplotlib.pyplot as plt
x = np.linspace(0, 4, 12)
y = np.cos(x**2/3+4)
f1 = interpolate.interp1d(x, y,kind = 'linear')
f2 = interpolate.interp1d(x, y, kind = 'cubic')
xnew = np.linspace(0, 4,30)
plt.plot(x,y,'o',xnew, f1(xnew), '-',xnew, f2(xnew), '--')
plt.legend(['data', 'linear', 'cubic','nearest'], loc = 'best')
plt.show()

Interpolation with UnivariateSpline

import matplotlib.pyplot as plt
from scipy.interpolate import UnivariateSpline

x = np.linspace(-3, 3, 50)
y = np.exp(-x**2) + 0.1 * np.random.randn(50)
spl = UnivariateSpline(x, y)
xs = np.linspace(-3, 3, 1000)
plt.plot(xs, spl(xs), 'r', lw = 10)
plt.show()