[Numpy-discussion] coercion rules for float32 in numpy are different from numarray
Travis Oliphant
oliphant.travis at ieee.org
Fri Aug 25 07:50:32 CDT 2006
Sebastian Haase wrote:
>> This is now the behavior in SVN. Note that this is different from both
>> Numeric (which gave an error) and numarray (which coerced to float32).
>>
>> But, it is consistent with how mixed-types are handled in calculations
>> and is thus an easier rule to explain.
>>
>> Thanks for the testing.
>>
>> -Travis
>>
>
> How hard would it be to change the rules back to the numarray behavior ?
>
It wouldn't be hard, but I'm not so sure that's a good idea. I do see
the logic behind that approach and it is worthy of some discussion.
I'll give my current opinion:
The reason I changed the behavior is to get consistency so there is one
set of rules on mixed-type interaction to explain. You can always do
what you want by force-casting your int32 arrays to float32. There
will always be some people who don't like whichever behavior is
selected, but we are trying to move NumPy in a direction of consistency
with fewer exceptions to explain (although this is a guideline and not
an absolute requirement).
Mixed-type interaction is always somewhat ambiguous. Now there is a
consistent rule for both universal functions and other functions (move
to a precision where both can be safely cast to --- unless one is a
scalar and then its precision is ignored).
If you don't want that to happen, then be clear about what data-type
should be used by casting yourself. In this case, we should probably
not try and guess about what users really want in mixed data-type
situations.
-Travis
More information about the Numpy-discussion
mailing list