On Thu, Feb 12, 2009 at 5:52 PM, Keith Goodman <kwgood...@gmail.com> wrote: > On Thu, Feb 12, 2009 at 5:22 PM, A B <python6...@gmail.com> wrote: >> Are there any routines to fill in the gaps in an array. The simplest >> would be by carrying the last known observation forward. >> 0,0,10,8,0,0,7,0 >> 0,0,10,8,8,8,7,7 > > Here's an obvious hack for 1d arrays: > > def fill_forward(x, miss=0): > y = x.copy() > for i in range(x.shape[0]): > if y[i] == miss: > y[i] = y[i-1] > return y > > Seems to work: > >>> x > array([ 0, 0, 10, 8, 0, 0, 7, 0]) >>> fill_forward(x) > array([ 0, 0, 10, 8, 8, 8, 7, 7])
I guess that should be for i in range(1, x.shape[0]): instead of for i in range(x.shape[0]): to avoid replacing the first element of the array, if it is missing, with the last. _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion