[Numpy-discussion] Properties of ma.masked singleton

Paul F. Dubois paul at pfdubois.com
Fri Jan 6 23:19:08 CST 2006


I'll look into your complaints. Your proposed solution does not work:
if x[2] is masked:
and
if x[2] is None:
become indistinguishable. Likewise for assignment.

Your example if x[2:4] is masked is a red herring. Obviously this 
statement is false no matter how you define 'masked'.

I redid ma in a bit of a hurry and didn't pay any attention to the 
issues you raise as to len(masked), which I agree should be 1.

Alexander Belopolsky wrote:
> In the current numpy version ma.masked singleton has the following  
> properties:
> 
>  >>> len(ma.masked)
> 0
> 
> which is a change from old MA, where
>  >>> len(MA.masked)
> 1
> 
> Similarly:
> 
>  >>> ma.masked.shape
> (0,)
>  >>> MA.masked.shape
> ()
> 
> It changes shape when filled:
> 
>  >>> ma.masked.filled()
> array([999999])
> 
> and so on.
> 
> The code contains numerous "if x is masked" statements to support all  
> this logic.
> 
> I would like to suggest a somewhat radical change for your review.
> 
> There are two main uses of ma.masked:
> 
> 1. To set mask:
> 
>  >>> x = ma.zeros(5)
>  >>> x[2:4] = ma.masked
>  >>> print x
> [0 0 -- -- 0]
> 
> 
> 2. To check if an element is masked:
> 
>  >>> x[2] is ma.masked
> True
> 
> 
> The second property allows a cute looking idiom "x[i] is masked", but  
> only works for single element access:
> 
>  >>> x[2:4] is ma.masked
> False
> 
> It also leads to strange results:
> 
>  >>> x[2].shape
> (0,)
> 
> 
> My proposal is to eliminate the property #2 from ma and redefine  masked 
> as None. Single element getitem will return a rank zero  MaskedArray. We 
> can also add "is_masked" property, which will allow a  convenient check 
> in the form "x[i].is_masked".
> 
> The main benefit of this proposal is that x[i] will be duck typing  
> compatible with numpy scalars.
> 
> -- sasha
> 
> 
> -------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc. Do you grep through log 
> files
> for problems?  Stop!  Download the new AJAX search engine that makes
> searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
> http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/numpy-discussion
> 




More information about the Numpy-discussion mailing list