[Numpy-discussion] Masked Array for NumPy 1.7

Dag Sverre Seljebotn d.s.seljebotn at astro.uio.no
Sat May 19 08:21:05 EDT 2012

Travis Oliphant <travis at continuum.io> wrote:

>Hey all, 
>After reading all the discussion around masked arrays and getting input
>from as many people as possible, it is clear that there is still
>disagreement about what to do, but there have been some fruitful
>discussions that ensued. 
>This isn't really new as there was significant disagreement about what
>to do when the masked array code was initially checked in to master.  
>So, in order to move forward, Mark and I are going to work together
>with whomever else is willing to help with an effort that is in the
>spirit of my third proposal but has a few adjustments.  
>The idea will be fleshed out in more detail as it progresses, but the
>basic concept is to create an (experimental) ndmasked object in NumPy
>1.7 and leave the actual ndarray object unchanged.   While the details
>need to be worked out here,  a goal is to have the C-API work with both
>ndmasked arrays and arrayobjects (possibly by defining a base-class
>C-level structure that both ndarrays inherit from).     This might also
>be a good way for Dag to experiment with his ideas as well but that is
>not an explicit goal. 

Yes, I'm sufficiently geared up about that that I'd like to try to do something; perhaps try to put the support in the C API for masks in a vtable (so that the functions can take happily take PyObject* rather than PyArrayObject*, and thus be used for other ways of associating masks with array data down the line, so that I could for instance make a class outside of numpy with a 'shared mask').

My available time is an extremely stochastic quantity at the moment though; so I really can't say how relevant that is to 1.7 yet. You'll see. (My discussion was really for the long term, as in, I'd like to do something over the coming year...)


>One way this could work, for example is to have PyArrayObject * be the
>base-class array (essentially the same C-structure we have now with a
>HASMASK flag). Then, the ndmasked object could inherit from
>PyArrayObject * as well but add more members to the C-structure.     I
>think this is the easiest thing to do and requires the least amount of
>code-change.      It is also possible to define an abstract base-class
>PyArrayObject * that both ndarray and ndmasked inherit from.     That
>way ndarray and ndmasked are siblings even though the ndarray would
>essentially *be* the PyArrayObject * --- just with a different
>type-hierarchy on the python side. 
>This work will take some time and, therefore, I don't expect 1.7 to be
>released prior to SciPy Austin with an end of June target date.   The
>timing will largely depend on what time is available from people
>interested in resolving the situation.   Mark and I will have some
>availability for this work in June but not a great deal (about 2
>man-weeks total between us).    If there are others who can step in and
>help, it will help accelerate the process.  
>Best regards,
>NumPy-Discussion mailing list
>NumPy-Discussion at scipy.org

Sent from my Android phone with K-9 Mail. Please excuse my brevity.

More information about the NumPy-Discussion mailing list