numpy.errstate#

class numpy.errstate(**kwargs)[原始碼]#

浮點錯誤處理的上下文管理器。

使用 errstate 的實例作為上下文管理器,允許該上下文中的語句以已知的錯誤處理行為執行。進入上下文時,錯誤處理會使用 seterrseterrcall 進行設定,退出時會重設為之前的狀態。

在 1.17.0 版本變更: errstate 也可用作函數裝飾器,如果包裝整個函數,則可節省一層縮排。

在 2.0 版本變更: errstate 現在完全是執行緒和 asyncio 安全的,但不能多次進入。使用 errstate 裝飾非同步函數是不安全的。

參數:
kwargs{divide, over, under, invalid}

關鍵字引數。有效的關鍵字是可能的浮點例外。每個關鍵字都應具有一個字串值,用於定義特定錯誤的處理方式。可能的值為 {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}。

註解

有關浮點例外類型和處理選項的完整文件,請參閱 seterr

範例

>>> import numpy as np
>>> olderr = np.seterr(all='ignore')  # Set error handling to known state.
>>> np.arange(3) / 0.
array([nan, inf, inf])
>>> with np.errstate(divide='ignore'):
...     np.arange(3) / 0.
array([nan, inf, inf])
>>> np.sqrt(-1)
np.float64(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()
{'divide': 'ignore', 'over': 'ignore', 'under': 'ignore', 'invalid': 'ignore'}
>>> olderr = np.seterr(**olderr)  # restore original state

方法

__call__(func)

將 self 作為函數呼叫。