numpy.errstate — NumPy v2.6.dev0 Manual

classnumpy.errstate(**kwargs)

[source]

#

Context manager for floating-point error handling.

Using an instance of

errstate

as a context manager allows statements in that context to execute with a known error handling behavior. Upon entering the context the error handling is set with

seterr

and

seterrcall

, and upon exiting it is reset to what it was before.

Changed in version 1.17.0:

errstate

is also usable as a function decorator, saving a level of indentation if an entire function is wrapped.

Changed in version 2.0:

errstate

is now fully thread and asyncio safe, but may not be entered more than once. It is not safe to decorate async functions using errstate.

Parameters:kwargs{divide, over, under, invalid}Keyword arguments. The valid keywords are the possible floating-point exceptions. Each keyword should have a string value that defines the treatment for the particular error. Possible values are {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}.

Methods

Notes

For complete documentation of the types of floating-point exceptions and treatment options, see

seterr

.

Concurrency note: see

Floating point error handling

Examples

>>> importnumpyasnp>>> olderr=np.seterr(all='ignore')# Set error handling to known state.>>> np.arange(3)/0.array([nan, inf, inf])>>> withnp.errstate(divide='ignore'):... np.arange(3)/0.array([nan, inf, inf])>>> np.sqrt(-1)np.float64(nan)>>> withnp.errstate(invalid='raise'):... np.sqrt(-1)Traceback (most recent call last): File "<stdin>", line 2, in <module>FloatingPointError: invalid value encountered in sqrtOutside the context the error handling behavior has not changed:

>>> np.geterr(){'divide': 'ignore', 'over': 'ignore', 'under': 'ignore', 'invalid': 'ignore'}>>> olderr=np.seterr(**olderr)# restore original state