numpy.seterr — NumPy v2.2 Manual (original) (raw)

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:

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.

Notes

The floating-point exceptions are defined in the IEEE 754 standard [1]:

Examples

import numpy as np orig_settings = np.seterr(all='ignore') # seterr to known value np.int16(32000) * np.int16(3) np.int16(30464) np.seterr(over='raise') {'divide': 'ignore', 'over': 'ignore', 'under': 'ignore', 'invalid': 'ignore'} old_settings = np.seterr(all='warn', over='raise') np.int16(32000) * np.int16(3) Traceback (most recent call last): File "", line 1, in FloatingPointError: overflow encountered in scalar multiply

old_settings = np.seterr(all='print') np.geterr() {'divide': 'print', 'over': 'print', 'under': 'print', 'invalid': 'print'} np.int16(32000) * np.int16(3) np.int16(30464) np.seterr(**orig_settings) # restore original {'divide': 'print', 'over': 'print', 'under': 'print', 'invalid': 'print'}