Why does numpy integer subtraction produce a float64?

Viewed 1771

In numpy, why does subtraction of integers sometimes produce floating point numbers?

>>> x = np.int64(2) - np.uint64(1)
>>> x
1.0
>>> x.dtype
dtype('float64')

This seems to only occur when using multiple different integer types (e.g. signed and unsigned), and when no larger integer type is available.

2 Answers
Related