On Tue, Nov 24, 2015 at 12:42 PM, Peter Creasey <
p.e.creasey...@googlemail.com> wrote:

> Hi,
>
> I just upgraded my numpy and started to received a TypeError from one of
> my codes that relied on the old, less strict, casting behaviour. The error
> message, however, left me scratching my head when trying to debug something
> like this:
>
> >>> a = array([0],dtype=uint64)
> >>> a += array([1],dtype=int64)
> TypeError: Cannot cast ufunc add output from dtype('float64') to
> dtype('uint64') with casting rule 'same_kind'
>
> Where does the 'float64' come from?!?!
>

The combination of uint64 and int64 leads to promotion to float64 as the
best option for the combination of signed and unsigned. To fix things, you
can either use `np.add` with an output argument and `casting='unsafe'` or
just be careful about using unsigned types.

Chuck
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
https://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to