Ignore divide by 0 warning in NumPy
Solution 1:
You can disable the warning with numpy.seterr
. Put this before the possible division by zero:
np.seterr(divide='ignore')
That'll disable zero division warnings globally. If you just want to disable them for a little bit, you can use numpy.errstate
in a with
clause:
with np.errstate(divide='ignore'):
# some code here
For a zero by zero division (undetermined, results in a NaN), the error behaviour has changed with numpy version 1.12.0: this is now considered "invalid", while previously it was "divide".
Thus, if there is a chance you your numerator could be zero as well, use
np.seterr(divide='ignore', invalid='ignore')
or
with np.errstate(divide='ignore', invalid='ignore'):
# some code here
See the "Compatibility" section in the release notes, last paragraph before the "New Features" section:
Comparing NaN floating point numbers now raises the invalid runtime warning. If a NaN is expected the warning can be ignored using np.errstate.