[Numpy-discussion] Priority rules between numpy scalars and 0d arrays
Mon Oct 13 12:35:23 CDT 2008
Sorry to bring back this subject, but I still haven't got any proper answers:
* What are the priority rules between numpy scalars and 0d arrays ?
When multiplying a numpy scalar by a 0d array, shouldn't the __mul__ or
__rmul__ methods of the array be called ?
Should the result be a numpy scalar, or a 0d array (possibly recasted to the
higher dtype) ?
The problem occurs with numpy.ma.masked, defined as a 0d, np.float64
MaskedArray, which has the __mul__ and __rmul__ of a MaskedArray.
np.float(1)*ma.masked gives ma.masked, as it should
np.float(64)* ma.masked gives 0, when ma.masked should have been obtained:
that leads me to think that ma.masked.__rmul__ isn't called. Why ? Are 0d
arrays that special beasts ?
More information about the Numpy-discussion