[Numpy-discussion] 0/0 == 0?

Nathaniel Smith njs at pobox.com
Thu Oct 2 23:29:14 EDT 2014

On Fri, Oct 3, 2014 at 3:20 AM, Charles R Harris
<charlesr.harris at gmail.com> wrote:
> On Thu, Oct 2, 2014 at 7:06 PM, Benjamin Root <ben.root at ou.edu> wrote:
>> Out[1] has an integer divided by an integer, and you can't represent nan
>> as an integer. Perhaps something weird was happening with type promotion
>> between versions?
> Also note that in python3 the '/' operator does float rather than integer
> division.
>>>> np.array(0) / np.array(0)
> __main__:1: RuntimeWarning: invalid value encountered in true_divide
> nan

Floor division still acts the same though:

>>> np.array(0) // np.array(0)
__main__:1: RuntimeWarning: divide by zero encountered in floor_divide

The seterr warning system makes a lot of sense for IEEE754 floats,
which are specifically designed so that 0/0 has a unique well-defined
answer. For ints though this seems really broken to me. 0 / 0 = 0 is
just the wrong answer. It would be nice if we had something reasonable
to return, but we don't, and I'd rather raise an error than return the
wrong answer.


Nathaniel J. Smith
Postdoctoral researcher - Informatics - University of Edinburgh

More information about the NumPy-Discussion mailing list