[Numpy-discussion] numpy.ma.compress
Pierre GM
pgmdevlist at gmail.com
Thu Jan 24 16:37:42 EST 2008
On Thursday 24 January 2008 15:58:14 Stefan van der Walt wrote:
> How about masking the output where the condition is masked?
> I.e. keep where condition is True, remove where condition is False and
> mask where condition is masked.
Won't systematically do, check one of the examples I gave in a previous
emails.
>>>a=masked_array([1,2,3,4,5],mask=[0,0,1,1,0])
>>>a.compress((a<4).filled(True))
masked_array(data = [1 2 -- --],
mask = [False False True True],
fill_value=999999)
Fundamentally, it's a very bad idea to use a masked array as a condition: what
should be done when the condition is masked ? Here, we're going against one
of the basic principles of Paul Dubois, the original author: we are making
assumptions about the masked values of the condition when we consider the
condition as a ndarray.
In timeseries, we prevent the use of masked arrays as conditions. That's not
much of a problem, as we already overloading __getitem__ to a rather ugly
extent. I'm a bit reluctant to introduce that feature in numpy.ma, as it
would crash the performance.
That's something we may want to consider when we'll port numpy.ma to C: a
masked condition is undefined, therefore cannot be used in selecting array
elements, therefore should be set to False.
More information about the NumPy-Discussion
mailing list