3

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.

cfh
  • 4,576
  • 1
  • 24
  • 34
Maytree23
  • 125
  • 1
  • 10

1 Answers1

7

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. ])
cfh
  • 4,576
  • 1
  • 24
  • 34
  • can you elaborate the answer a bit? how did you come to xp and fp and how do you account for the desired shape of the final array? – Martim Passos Sep 06 '22 at 22:32