Pierre GM wrote: > On Feb 3, 2009, at 4:00 PM, Ryan May wrote: >> Well, I guess I hit send too soon. Here's one easy solution >> (consistent with >> what you did for __radd__), change the code for __rmul__ to do: >> >> return multiply(self, other) >> >> instead of: >> >> return multiply(other, self) >> >> That fixes it for me, and I don't see how it would break anything. > > Good call, but once again: "Thou shalt not put trust in ye masked > values [1]". > > >>> a = np.ma.array([1,2,3],mask=[0,1,0]) > >>> b = np.ma.array([10, 20, 30], mask=[0,1,0]) > >>> (a*b).data > array([10, 2, 90]) > >>> (b*a).data > array([10, 20, 90]) > > So yes, __mul__ is not commutative when you deal w/ masked arrays (at > least, when you try to access the data under a mask). Nothing I can > do. Remember that preventing the underlying data to be modified is > NEVER guaranteed...
Fair enough. Ryan -- Ryan May Graduate Research Assistant School of Meteorology University of Oklahoma _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion