Context manager for seterr
Hi all, Since the topic of context managers recently came up, what do you think of adding a context manager for seterr? with np.seterr(divide='ignore'): frac = num / denom Stéfan
On 15.12.2014 01:12, Stefan van der Walt wrote:
Hi all,
Since the topic of context managers recently came up, what do you think of adding a context manager for seterr?
with np.seterr(divide='ignore'): frac = num / denom
already exists as np.errstate: with np.errstate(divide='ignore'):
On 2014-12-15 02:23:18, Julian Taylor
already exists as np.errstate:
with np.errstate(divide='ignore'):
With 'ignore' a warning is still raised--is this by choice?
import numpy as np x = np.array([0, 1, 2.]) with np.errstate(divide='ignore'): ... x/x ... __main__:2: RuntimeWarning: invalid value encountered in true_divide array([ nan, 1., 1.])
(I see it is documented that way as well, so I suspect so.) Stéfan
On 15.12.2014 01:40, Stefan van der Walt wrote:
On 2014-12-15 02:23:18, Julian Taylor
wrote: already exists as np.errstate:
with np.errstate(divide='ignore'):
With 'ignore' a warning is still raised--is this by choice?
import numpy as np x = np.array([0, 1, 2.]) with np.errstate(divide='ignore'): ... x/x ... __main__:2: RuntimeWarning: invalid value encountered in true_divide array([ nan, 1., 1.])
(I see it is documented that way as well, so I suspect so.)
0./0. raises an invalid floating point exception, unlike e.g 1./0. which raises a zero division exception. NumPy just bubbles up what the processor does, which means it does not behave like Python which always raises ZeroDivision also for 0./0.
participants (3)
-
Julian Taylor
-
Pauli Virtanen
-
Stefan van der Walt