From: Paul D. <pfd...@gm...> - 2006-07-04 21:54:34
|
Some things to note: The mask is copy-on-write. Don't mess with that. You can't just poke values into an existing mask, it may be shared with other arrays. I do not agree that there is any 'inconsistency'. It may be someone's concept of the class that if there is a mask then at least one value is on, but that was not my design. I believe if you try your ideas you'll find it slows other people down, if not you. Perhaps with all of Travis' new machinery, subclassing works. It didn't used to, and I haven't kept up. On 7/3/06, Pierre GM <pgm...@ma...> wrote: > > Michael, > I wonder whether the Mask class you suggest is not a bit overkill. There > should be enough tools in the existing MA module to do what we want. And I > don't wanna think about compatibility the number of changes in the MA code > that'd be required (but I'm lazy)... > > For the sake of consistency and optimization, I still think it could be > easier > (and cleaner) to make `nomask` the default for a MaskedArray without > masked > values. That could for example be implemented by forcing `nomask` at the > creation of the MaskedArray with an extra > `if mask and not mask.any(): mask=nomask`, or by using Paul's > make_mask( flag=1) trick. > > Masking some specific values could still be done when mask is nomask with > an > intermediary MA.getmaskarray() step. > > On a side note, modifying an existing mask is a delicate matter. > Everything's > OK if you use masks as a way to hide existing data, it's more complex when > initially you have some holes in your dataset... > |