Ryan May wrote:
Pierre GM wrote:
On Dec 16, 2008, at 1:57 PM, Ryan May wrote:
I just noticed the following and I was kind of surprised:

a = ma.MaskedArray([1,2,3,4,5], mask=[False,True,True,False,False])
b = a*5
b
masked_array(data = [5 -- -- 20 25],
      mask = [False  True  True False False],
      fill_value=999999)
b.data
array([ 5, 10, 15, 20, 25])

I was expecting that the underlying data wouldn't get modified while masked. Is
this actual behavior expected?
Meh. Masked data shouldn't be trusted anyway, so I guess it doesn't really matter one way or the other. But I tend to agree, it'd make more sense leave masked data untouched (or at least, reset them to their original value after the operation), which would mimic the behavior of gimp/photoshop. Looks like there's a relatively easy fix. I need time to check whether it doesn't break anything elsewhere, nor that it slows things down too much. I won't have time to test all that before next week, though. In any case, that would be for 1.3.x, not for 1.2.x.
In the meantime, if you need the functionality, use something like
ma.where(a.mask,a,a*5)

I agree that masked values probably shouldn't be trusted, I was just surprised to see the behavior. I just assumed that no operations were taking place on masked values.

Just to clarify what I was doing here: I had a masked array of data, where the mask was set by a variety of different masked values. Later on in the code, after doing some unit conversions, I went back to look at the raw data to find points that had one particular masked value set. Instead, I was surprised to see all of the masked values had changed and I could no longer find any of the special values in the data.

Ryan

Sorry for being dense about this, but I really do not understand why masked values should not be trusted. If I apply a procedure to an array with elements designated as untouchable, I would expect that contract to be honored. What am I missing here?

Thanks for your patience!
-- jv
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to