I have a function for statistic issues:
import numpy as np
from scipy.special import gamma as Gamma
def Foo(xdata):
...
return x1 * (
( #R is a numpy vector
( ((R - x2)/beta) ** (x3 -1) ) *
( np.exp( - ((R - x2) / x4) ) ) /
( x4 * Gamma(x3))
).real
)
Sometimes I get from the shell the following warning:
RuntimeWarning: divide by zero encountered in...
I use the numpy isinf
function to correct the results of the function in other files, so I do not need this warning.
Is there a way to ignore the message? In other words, I do not want the shell to print this message.
I do not want to disable all python warnings, just this one.
You can disable the warning with
numpy.seterr
. Put this before the possible division by zero:That'll disable zero division warnings globally. If you just want to disable them for a little bit, you can use
numpy.errstate
in awith
clause: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
or
See the "Compatibility" section in the release notes, last paragraph before the "New Features" section:
You could also use
numpy.divide
for division. That way you don't have to explicitly disable warnings.