Hello all!
I'm a python and numpy newbie and I'm having difficulty doing something that seems to be relatively straightforward.
So I figured I would ask the experts!
I would like to conduct the equivalent of a "forward fill" function on an array, that repeats the last non-null value until the next non-null value is reached. I saw that the scipy TimeSeries has a "forward_fill" function:
http://pytseries.sourceforge.net/lib/interpolation.html
I would like to do exactly what the TimeSeries "forward_fill" function does - but I don't have a time series.
I simply want to convert an array
[1,2,3,4,5,6,-999,-999,-999,-999,7,8]
to
[1,2,3,4,5,6,6,6,6,6,7,8]
Here's what I've tried:
from numpy import *
a = array([1,2,3,4,5,6,-999,-999,-999,-999,7,8])
adata = a
for i in adata:
if i != -999:
j = i
elif i == -999:
j = adata[i-1]
print j
else:
print 'end'
Of course .... this doesn't work.
Many thanks in advance for any help or suggestions!
As most of you can probably tell from my ugly code, I'm not a programmer...