[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
0

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.

-n

-- 
Nathaniel J. Smith
Postdoctoral researcher - Informatics - University of Edinburgh
http://vorpus.org



More information about the NumPy-Discussion mailing list