[SciPy-user] creating timeseries for non convertional custom frequencies

Pierre GM pgmdevlist at gmail.com
Mon Apr 14 18:12:58 EDT 2008


Marco,

> (1) One mask that I created when importing the data or creating the masked
> array. This is used to mask all data values are physically inplausible or
> invalid.
> (2) Another mask that I just created with fill_missing_dates to get the
> missing dates filled.

Just count the number of unmasked data with series.count(), and store it into 
a count_ini variable. 
Then, keep on applying your filters, counting the number of unmasked data each 
time. You can then compare this new counts to count_ini (the original one).

> BTW, Is there a more efficient way to get properties of the masked array
> like number of masked and not masked values?

If you look at the source code for the count method (in numpy.ma), you'll see 
that the result of count is only the difference between the size along the 
given axis and the sum of the mask along the same axis:
ma.count(s, axis) = numpy.size(s._data, axis) - numpy.sum(s._mask, axis)

So, the nb of "valid" values is given by series.count(axis), the nb 
of "invalid" values by series._mask.sum(axis), the total nb of data by 
numpy.size(s,axis) or simply series.shape[axis].

If you only have 1D data, that's even faster:
nb of valid: series.count()
nb of invalid: series._mask.sum()
nb of data: series.size




More information about the SciPy-User mailing list