當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python numpy isclose用法及代碼示例


本文簡要介紹 python 語言中 numpy.isclose 的用法。

用法:

numpy.isclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)

返回一個布爾數組,其中兩個數組在容差內按元素相等。

公差值是正的,通常是非常小的數字。將相對差 (rtol * abs(b)) 和絕對差 atol 相加以與 a 和 b 之間的絕對差進行比較。

警告

默認 atol 不適用於比較遠小於 1 的數字(請參閱注釋)。

參數

a, b array_like

要比較的輸入數組。

rtol 浮點數

相對容差參數(見注釋)。

atol 浮點數

絕對容差參數(見注釋)。

equal_nan bool

是否比較 NaN 相等。如果為 True,則 a 中的 NaN 將被視為等於輸出數組中 b 中的 NaN。

返回

y array_like

返回一個布爾數組 whereab在給定的容差範圍內是相等的。如果兩者ab是標量,返回單個布爾值。

注意

對於有限值,isclose 使用以下等式來測試兩個浮點值是否相等。

絕對(a - b)<=(atol + rtol * 絕對(b))

不同於內置math.isclose, 上式在ab- 它假設b是參考值 - 所以isclose(a, b)可能不同於關閉(b,a).此外,atol 的默認值不為零,用於確定哪些小值應視為接近零。默認值適用於順序統一的預期值:如果預期值明顯小於 1,則可能導致誤報。環礁應該為手頭的用例仔細選擇。零值環礁將導致False如果有的話a或者b為零。

isclose 沒有為非數字數據類型定義。為此, bool 被視為數字數據類型。

例子

>>> np.isclose([1e10,1e-7], [1.00001e10,1e-8])
array([ True, False])
>>> np.isclose([1e10,1e-8], [1.00001e10,1e-9])
array([ True, True])
>>> np.isclose([1e10,1e-8], [1.0001e10,1e-9])
array([False,  True])
>>> np.isclose([1.0, np.nan], [1.0, np.nan])
array([ True, False])
>>> np.isclose([1.0, np.nan], [1.0, np.nan], equal_nan=True)
array([ True, True])
>>> np.isclose([1e-8, 1e-7], [0.0, 0.0])
array([ True, False])
>>> np.isclose([1e-100, 1e-7], [0.0, 0.0], atol=0.0)
array([False, False])
>>> np.isclose([1e-10, 1e-10], [1e-20, 0.0])
array([ True,  True])
>>> np.isclose([1e-10, 1e-10], [1e-20, 0.999999e-10], atol=0.0)
array([False,  True])

相關用法


注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.isclose。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。