Python – How to Get NaN When Dividing by Zero

python

When I do floating point division in Python, if I divide by zero, I get an exception:

>>> 1.0/0.0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: float division

I'd really like to get NaN or Inf instead (because the NaN or Inf will propagate through the rest of my calculation correctly and not kill my program).

How can I do this?

Best Answer

The easiest way to get this behaviour is to use numpy.float64 instead of Python default float type:

>>> import numpy
>>> numpy.float64(1.0) / 0.0
inf

Of course this requires NumPy. You can use numpy.seterr() to fine-tune the error handling.

Related Question