[SciPy-User] Replace duplicates in a monotonically increasing array with linearly interpolated values.

Dharhas Pothina Dharhas.Pothina at twdb.state.tx.us
Fri Sep 10 14:26:46 EDT 2010


Hi,

I have an monotonically increasing array with duplicates in it. e.g.

x = np.array([1.0,1.0,1.0,2.0,2.0,3.0,3.0,3.0,4.0,4.0,5.0,5.0,5.0,5.0,6.0])

I need a new array of the same size with linearly interpolated values i.e something like

np.array([1.0, 1.33, 1.67, 2.0, 2.5, 3.0, 3.33, 3.67, 4.0, 4.5, 5.0, 5.25, 5.5, 5.75, 6.0])

Is there an efficient way to do this. Right now I'm looping through the array and maintaining position flags of when the value changes and then doing linear interpolation between the start and end flags before resetting the flags moving to the next section. This is pretty slow. 

I realize there will be a problem on how to deal with duplicates at the end of the array.

thanks

- dharhas




More information about the SciPy-User mailing list