Maytree23
Maytree23

Reputation: 135

How to extend an array with linear interpolation

What I want is to extend an array of length m to an array of length n (n>m), and interpolate the missing values linearly.

For example, I want to extend this array [1,5,1,7] to an array of length 7, the result should be [1,3,5,3,1,5,7], where the bold figures result from linear interpolation.

Is there an easy way to do this in Python? Thanks in advance.

Upvotes: 3

Views: 3367

Answers (1)

cfh
cfh

Reputation: 4666

The interp function from numpy can do what you want.

Example:

>>> xp = [1, 2, 3]
>>> fp = [3, 2, 0]
>>> np.interp(2.5, xp, fp)
1.0
>>> np.interp([0, 1, 1.5, 2.72, 3.14], xp, fp)
array([ 3. ,  3. ,  2.5 ,  0.56,  0. ])

Upvotes: 7

Related Questions