On this page
numpy.seterr
- numpy.seterr(all=None, divide=None, over=None, under=None, invalid=None)[source]
- 
    Set how floating-point errors are handled. Note that operations on integer scalar types (such as int16) are handled like floating point, and are affected by these settings.- Parameters
- 
      - all{‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, optional
- 
        Set treatment for all types of floating-point errors at once: - ignore: Take no action when the exception occurs.
- warn: Print a RuntimeWarning(via the Pythonwarningsmodule).
- raise: Raise a FloatingPointError.
- call: Call a function specified using the seterrcallfunction.
- print: Print a warning directly to stdout.
- log: Record error in a Log object specified by seterrcall.
 The default is not to change the current behavior. 
- divide{‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, optional
- 
        Treatment for division by zero. 
- over{‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, optional
- 
        Treatment for floating-point overflow. 
- under{‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, optional
- 
        Treatment for floating-point underflow. 
- invalid{‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, optional
- 
        Treatment for invalid floating-point operation. 
 
- Returns
- 
      - old_settingsdict
- 
        Dictionary containing the old settings. 
 
 NotesThe floating-point exceptions are defined in the IEEE 754 standard [1]: - Division by zero: infinite result obtained from finite numbers.
- Overflow: result too large to be expressed.
- Underflow: result so close to zero that some precision was lost.
- Invalid operation: result is not an expressible number, typically indicates that a NaN was produced.
 Examples>>> old_settings = np.seterr(all='ignore') #seterr to known value >>> np.seterr(over='raise') {'divide': 'ignore', 'over': 'ignore', 'under': 'ignore', 'invalid': 'ignore'} >>> np.seterr(**old_settings) # reset to default {'divide': 'ignore', 'over': 'raise', 'under': 'ignore', 'invalid': 'ignore'}>>> np.int16(32000) * np.int16(3) 30464 >>> old_settings = np.seterr(all='warn', over='raise') >>> np.int16(32000) * np.int16(3) Traceback (most recent call last): File "<stdin>", line 1, in <module> FloatingPointError: overflow encountered in short_scalars>>> from collections import OrderedDict >>> old_settings = np.seterr(all='print') >>> OrderedDict(np.geterr()) OrderedDict([('divide', 'print'), ('over', 'print'), ('under', 'print'), ('invalid', 'print')]) >>> np.int16(32000) * np.int16(3) 30464
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
 https://numpy.org/doc/1.19/reference/generated/numpy.seterr.html