On Thu, Oct 27, 2011 at 8:51 PM, Travis Oliphant <oliphant@enthought.com> wrote:
As I mentioned.   I find the ability to separate an ABSENT idea from an IGNORED idea convincing.    In other words, I think distinguishing between masks and bit-patterns is not just an implementation detail, but provides a useful concept for multiple use-cases.

I understand exactly what it would take to add bit-patterns to NumPy.  I also understand what Mark did and agree that it is possible to add Matthew's idea to the current code-base.  I think it is worth exploring 
 

A masked view can be considered as simply a mask on the viewed data. I agree that in that case it might be nicer to have some operations that are only allowed for views, such as taking a view with a mask from somewhere else rather than having to set it up with assignments. It might also be useful if masked values in a view could be exposed without assigning to the underlying value, perhaps with a np.EXPOSE assignment. But I think these  operations could be implemented on top of the current code, although we might want an additional flag.

Space saving can be addressed with bit masks. Unified storage can be addressed by bit patterns that get translated between stored data and numpy arrays with NA. So on and so forth. As people begin to use the current implementation I hope that they offer feedback as to what they discover so that the API and implementation can mature into something widely useful.

<snip>

Chuck