Question: I have two arrays of the same length, say array x and array y. I want to find the value of y corresponding to x=0.56. This is not a value present in array x. 
I would like python to find by itself the closest value larger than 0.56 (and its corresponding y value) and the closest value smaller than 0.56 (and its corresponding y value). Then simply interpolate to find the value of y when x 0.56.

This is easily done when I find the indices of the two x values and corresponding y values by myself and input them into Python (see following bit of code). 
But is there any way for python to find the indices by itself?

```
#interpolation:
def effective_height(h1,h2,g1,g2):
    return (h1 + (((0.56-g1)/(g2-g1))*(h2-h1)))

eff_alt1 = effective_height(x[12],x[13],y[12],y[13])

```

In this bit of code, I had to find the indices [12] and [13] corresponding to the closest smaller value to 0.56 and the closest larger value to 0.56. 

> 
> Now I am looking for a similar technique where I would just tell python to interpolate between the two values of x for x=0.56 and print the corresponding value of y when x=0.56.
> 
> 
> 

I have looked at scipy's interpolate but don't think it would help in this case, although further clarification on how I can use it in my case would be helpful too.

Answer: 
Does Numpy `interp` do what you want?:

```
import numpy as np
x = [0,1,2]
y = [2,3,4]
np.interp(0.56, x, y)
Out[81]: 2.56

```
Given your two arrays, `x` and `y`, you can do something like the following using SciPy.

```
from scipy.interpolate import InterpolatedUnivariateSpline

spline = InterpolatedUnivariateSpline(x, y, k=5)
spline(0.56)

```

The keyword `k` must be between 1 and 5, and [controls the degree of the spline](http://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.interpolate.InterpolatedUnivariateSpline.html#scipy.interpolate.InterpolatedUnivariateSpline).

Example:

```
>>> x = range(10)
>>> y = range(0, 100, 10)
>>> spline = InterpolatedUnivariateSpline(x, y, k=5)
>>> spline(0.56)
array(5.6000000000000017)

```