Thank you very much for contributing this description.    It is very helpful to 
see how people use numpy.ma in the wild. 

-Travis

On Apr 11, 2012, at 2:57 PM, Paul Hobson wrote:

> Travis et al,
> 
> This isn't a reply to anything specific in your email and I apologize
> if there is a better thread or place to share this information. I've
> been meaning to participate in the discussion for a long time and
> never got around to it. The main thing I'd like to is convey my
> typical use of the numpy.ma module as an environmental engineer
> analyzing censored datasets --contaminant concentrations that are
> either at well understood values (not masked) or some unknown value
> below an upper bound (masked).
> 
> My basic understanding is that this discussion revolved around how to
> treat masked data (ignored vs missing) and how to implement one, both,
> or some middle ground between those two concepts. If I'm off-base,
> just ignore all of the following.
> 
> For my purposes, numpy.ma is implemented in a way very well suited to
> my needs. Here's a gist of a something that was *really* hard for me
> before I discovered numpy.ma and numpy in general. (this is a bit
> much, see below for the highlights)
> https://gist.github.com/2361814
> 
> The main message here is that I include the upper bounds of the
> unknown values (detection limits) in my array and use that to
> statistically estimate their values. I must be able to retrieve the
> masked detection limits throughout this process. Additionally the
> masks as currently implemented allow me sort first the undetected
> values, then the detected values (see __rosRanks in the gist).
> 
> As boots-on-the-ground user of numpy, I'm ecstatic that this tool
> exists. I'm also pretty flexible and don't anticipated any major snags
> in my work if things change dramatically as the masked/missing/ignored
> functionality evolves.
> 
> Thanks to everyone for the hard work and great tools,
> -Paul Hobson
> 
> On Mon, Apr 9, 2012 at 9:52 PM, Travis Oliphant <tra...@continuum.io> wrote:
>> Hey all,
>> 
>> I've been waiting for Mark Wiebe to arrive in Austin where he will spend 
>> several weeks, but I also know that masked arrays will be only one of the 
>> things he and I are hoping to make head-way on while he is in Austin.    
>> Nevertheless, we need to make progress on the masked array discussion and if 
>> we want to finalize the masked array implementation we will need to finish 
>> the design.
>> 
>> I've caught up on most of the discussion including Mark's NEP, Nathaniel's 
>> NEP and other writings and the very-nice mailing list discussion that 
>> included a somewhat detailed discussion on the algebra of IGNORED.   I think 
>> there are some things still to be decided.  However, I think some things are 
>> pretty clear:
>> 
>>        1) Masked arrays are going to be fundamental in NumPy and these 
>> should replace most people's use of numpy.ma.   The numpy.ma code will 
>> remain as a compatibility layer
>> 
>>        2) The reality of #1 and NumPy's general philosophy to date means 
>> that masked arrays in NumPy should support the common use-cases of masked 
>> arrays (including getting and setting of the mask from the Python and 
>> C-layers).  However, the semantic of what the mask implies may change from 
>> what numpy.ma uses to having  a True value meaning selected.
>> 
>>        3) There will be missing-data dtypes in NumPy.   Likely only a 
>> limited sub-set (string, bytes, int64, int32, float32, float64, complex64, 
>> complex32, and object) with an API that allows more to be defined if 
>> desired.   These will most likely use Mark's nice machinery for managing the 
>> calculation structure without requiring new C-level loops to be defined.
>> 
>>        4) I'm still not sure about whether the IGNORED concept is necessary 
>> or not.    I really like the separation that was emphasized between 
>> implementation (masks versus bit-patterns) and operations (propagating 
>> versus non-propagating).   Pauli even created another dimension which I 
>> don't totally grok and therefore can't remember.   Pauli?  Do you still feel 
>> that is a necessary construction?  But, do we need the IGNORED concept to 
>> indicate what amounts to different default key-word arguments to functions 
>> that operate on NumPy arrays containing missing data (however that is 
>> represented)?    My current weak view is that it is not really necessary.   
>> But, I could be convinced otherwise.
>> 
>> I think the good news is that given Mark's hard-work and Nathaniel's 
>> follow-up we are really quite far along.   I would love to get Nathaniel's 
>> opinion about what remains un-done in the current NumPy code-base.   I would 
>> also appreciate knowing (from anyone with an interest) opinions of items 1-4 
>> above and anything else I've left out.
>> 
>> Thanks,
>> 
>> -Travis
>> 
>> 
>> 
>> 
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion@scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion

_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to