From: Pierre GM <pgm...@ma...> - 2006-06-22 19:15:29
|
On Wednesday 21 June 2006 22:01, Michael Sorich wrote: > I was setting the fill_value as 'NA' when constructing the array so > the masked values would be printed as 'NA'. It is not a big deal to > avoid doing this. You can use masked_print_option, as illustrated below, without using a fill_value incompatible with your data type. >>>import numpy.core.ma as MA >>>X = MA.array([1,2,3],maks=[0,1,0]) >>>print X [1 -- 3] >>>MA.masked_print_option=MA._MaskedPrintOption('N/A') >>>print X [1 N/A 3] > Nevertheless, the differences between a masked array with a boolean > mask and a mask of booleans have caused me trouble before. Especially > when there are hidden in-place conversions of a mask which is a array > of False to a mask which is False. e.g. OK, I'm still using 0.9.8 and I can't help you with this one. In that version, N.asarray transforms the MA into a ndarray, so you lose the mask. But I wonder: if none of your values are masked, the natural behavior would be to have `data.mask==nomask`, which speeds up things a bit. This gain of time is why I was suggesting that `mask` would be forced to `nomask` at the creation, if `mask.any()==False`. Could you give me some examples of cases where you need the mask to stay as an array of False ? If you need to access the mask as an array, you can always use MA.getmaskarray. |