[Numpy-discussion] Weird upcast behavior with 1.6.x, working as intended?

Charles R Harris charlesr.harris@gmail....
Mon Aug 8 12:24:13 CDT 2011


On Mon, Aug 8, 2011 at 10:54 AM, Olivier Delalleau <shish@keba.be> wrote:

> Hi,
>
> This is with numpy 1.6.1 under Linux x86_64, testing the upcast mechanism
> of "scalar + array":
>
> >>> import numpy; print (numpy.array(3, dtype=numpy.complex128) +
> numpy.ones(3, dtype=numpy.float32)).dtype
> complex64
>
> Since it has to upcast my array (float32 is not "compatible enough" with
> complex128), why does it upcast it to complex64 instead of complex128?
> As far as I can tell 1.4.x and 1.5.x versions of numpy are indeed upcasting
> to complex128.
>
>
The 0 dimensional array is being treated as a scalar, hence is cast to the
type of the 1d array. This seems more consistent with the idea that 0
dimensional arrays act like scalars, but I suppose that is open to
discussion.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20110808/30acbc94/attachment.html 


More information about the NumPy-Discussion mailing list