原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.errstate.html
校对:(虚位以待)
numpy.
errstate
(**kwargs)[source]浮点错误处理的上下文管理器。
使用errstate
的实例作为上下文管理器允许在该上下文中的语句以已知的错误处理行为执行。在进入上下文时,错误处理用seterr
和seterrcall
设置,并且在退出时将其重置为之前的状态。
参数: | kwargs:{divide,over,under,invalid}
|
---|
也可以看看
笔记
with
语句在Python 2.5中引入,只能通过导入使用:从 __ future __ import with_statement
。在早期的Python版本中,with
语句不可用。
有关浮点异常和处理选项类型的完整文档,请参见seterr
。
例子
>>> from __future__ import with_statement # use 'with' in Python 2.5
>>> olderr = np.seterr(all='ignore') # Set error handling to known state.
>>> np.arange(3) / 0.
array([ NaN, Inf, Inf])
>>> with np.errstate(divide='warn'):
... np.arange(3) / 0.
...
__main__:2: RuntimeWarning: divide by zero encountered in divide
array([ NaN, Inf, Inf])
>>> np.sqrt(-1)
nan
>>> with np.errstate(invalid='raise'):
... np.sqrt(-1)
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
FloatingPointError: invalid value encountered in sqrt
在上下文之外,错误处理行为未更改:
>>> np.geterr()
{'over': 'warn', 'divide': 'warn', 'invalid': 'warn',
'under': 'ignore'}