[Numpy-discussion] numpy.log does not raise exceptions

dpo dominique.orban at gmail.com
Sun Aug 28 12:36:27 EDT 2011



Robert Kern-2 wrote:
> 
> The reason we don't raise exceptions by default is because when
> processing large arrays, you usually don't want to cancel the whole
> operation just because some values were out of the domain. You would
> rather get an array with NaNs in the elements that had invalid inputs
> so you can do something useful with the other elements and actually
> track down where the NaNs got their bad inputs. Always raising an
> exception destroys that information.
> 
> That said, if you do want to raise an exception, this is entirely
> configurable.
> 
>   http://docs.scipy.org/doc/numpy/reference/generated/numpy.seterr.html
> 
> [~]
> |1> import numpy as np
> 
> [~]
> |2> np.log([-1])
> Warning: invalid value encountered in log
> array([ nan])
> 
> [~]
> |3> np.seterr(invalid='raise')
> {'divide': 'print', 'invalid': 'print', 'over': 'print', 'under':
> 'ignore'}
> 
> [~]
> |4> np.log([-1])
> ---------------------------------------------------------------------------
> FloatingPointError                        Traceback (most recent call
> last)
> /Users/rkern/<ipython-input-4-6f7031b9c723> in <module>()
> ----> 1 np.log([-1])
> 
> FloatingPointError: invalid value encountered in log
> 

Excellent, thanks. I was hoping it would be configurable.

Dominique
-- 
View this message in context: http://old.nabble.com/numpy.log-does-not-raise-exceptions-tp32348907p32352209.html
Sent from the Numpy-discussion mailing list archive at Nabble.com.




More information about the NumPy-Discussion mailing list