-
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 Pythonwarnings
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.
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_settings : dict
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.
[R281] http://en.wikipedia.org/wiki/IEEE_754 Examples
123456>>> old_settings
=
np.seterr(
all
=
'ignore'
)
#seterr to known value
>>> np.seterr(over
=
'raise'
)
{
'over'
:
'ignore'
,
'divide'
:
'ignore'
,
'invalid'
:
'ignore'
,
'under'
:
'ignore'
}
>>> np.seterr(
*
*
old_settings)
# reset to default
{
'over'
:
'raise'
,
'divide'
:
'ignore'
,
'invalid'
:
'ignore'
,
'under'
:
'ignore'
}
1234567>>> 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
123456>>> old_settings
=
np.seterr(
all
=
'print'
)
>>> np.geterr()
{
'over'
:
'print'
,
'divide'
:
'print'
,
'invalid'
:
'print'
,
'under'
:
'print'
}
>>> np.int16(
32000
)
*
np.int16(
3
)
Warning: overflow encountered
in
short_scalars
30464
numpy.seterr()

2025-01-10 15:47:30
Please login to continue.