scipy.special.
seterr#
- scipy.special.seterr(**kwargs)#
設定特殊函數錯誤的處理方式。
- 參數:
- all{‘ignore’, ‘warn’ ‘raise’}, 選填
一次設定所有類型特殊函數錯誤的處理方式。選項如下
‘ignore’ 發生錯誤時不採取任何動作
‘warn’ 發生錯誤時印出
SpecialFunctionWarning
(透過 Pythonwarnings
模組)‘raise’ 發生錯誤時拋出
SpecialFunctionError
。
預設為不變更目前的行為。如果指定了其他特殊函數錯誤類別的行為,則會先套用
all
,然後再套用其他類別。- singular{‘ignore’, ‘warn’, ‘raise’}, 選填
奇異點的處理方式。
- underflow{‘ignore’, ‘warn’, ‘raise’}, 選填
下溢的處理方式。
- overflow{‘ignore’, ‘warn’, ‘raise’}, 選填
溢位的處理方式。
- slow{‘ignore’, ‘warn’, ‘raise’}, 選填
慢速收斂的處理方式。
- loss{‘ignore’, ‘warn’, ‘raise’}, 選填
精確度損失的處理方式。
- no_result{‘ignore’, ‘warn’, ‘raise’}, 選填
找不到結果的處理方式。
- domain{‘ignore’, ‘warn’, ‘raise’}, 選填
函數無效引數的處理方式。
- arg{‘ignore’, ‘warn’, ‘raise’}, 選填
函數無效參數的處理方式。
- other{‘ignore’, ‘warn’, ‘raise’}, 選填
未知錯誤的處理方式。
- 回傳值:
- olderrdict
包含舊設定的字典。
另請參閱
geterr
取得目前處理特殊函數錯誤的方式
errstate
特殊函數錯誤處理的上下文管理器
numpy.seterr
處理浮點數錯誤的類似 NumPy 函數
範例
>>> import scipy.special as sc >>> from pytest import raises >>> sc.gammaln(0) inf >>> olderr = sc.seterr(singular='raise') >>> with raises(sc.SpecialFunctionError): ... sc.gammaln(0) ... >>> _ = sc.seterr(**olderr)
我們也可以針對除了某個類別以外的所有類別拋出錯誤。
>>> olderr = sc.seterr(all='raise', singular='ignore') >>> sc.gammaln(0) inf >>> with raises(sc.SpecialFunctionError): ... sc.spence(-1) ... >>> _ = sc.seterr(**olderr)