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.
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 Python warnings
module).
raise: Raise a FloatingPointError
.
call: Call a function specified using the seterrcall
function.
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.
Treatment for division by zero.
Treatment for floating-point overflow.
Treatment for floating-point underflow.
Treatment for invalid floating-point operation.
Dictionary containing the old settings.
Notes
The 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
>>> 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 "<stdin>", line 1, in <module> 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'}
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4