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


Python numpy testing.assert_array_equal用法及代碼示例


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

用法:

testing.assert_array_equal(x, y, err_msg='', verbose=True)

如果兩個類似數組的對象不相等,則引發 AssertionError。

給定兩個 數組 對象,檢查形狀是否相等,並且這些對象的所有元素都相等(但有關標量的特殊處理,請參見注釋)。在形狀不匹配或值衝突時引發異常。與 numpy 中的標準用法相比,NaNs 像數字一樣進行比較,如果兩個對象的 NaNs 在相同的位置,則不會引發斷言。

建議使用浮點數驗證相等性時通常要小心。

參數

x array_like

要檢查的實際對象。

y array_like

期望的、預期的對象。

err_msg str,可選

失敗時要打印的錯誤消息。

verbose 布爾型,可選

如果為 True,則將衝突值附加到錯誤消息中。

拋出

AssertionError

如果實際對象和期望對象不相等。

注意

當 x 和 y 之一是標量而另一個是 數組 時,該函數檢查 數組 對象的每個元素是否等於標量。

例子

第一個斷言不會引發異常:

>>> np.testing.assert_array_equal([1.0,2.33333,np.nan],
...                               [np.exp(0),2.33333, np.nan])

斷言失敗,浮點數不精確:

>>> np.testing.assert_array_equal([1.0,np.pi,np.nan],
...                               [1, np.sqrt(np.pi)**2, np.nan])
Traceback (most recent call last):
    ...
AssertionError:
Arrays are not equal

Mismatched elements: 1 / 3 (33.3%)
Max absolute difference: 4.4408921e-16
Max relative difference: 1.41357986e-16
 x: array([1.      , 3.141593,      nan])
 y: array([1.      , 3.141593,      nan])

對於這些情況,請改用 assert_allclose 或 nulp(浮點值的數量)函數之一:

>>> np.testing.assert_allclose([1.0,np.pi,np.nan],
...                            [1, np.sqrt(np.pi)**2, np.nan],
...                            rtol=1e-10, atol=0)

如注釋部分所述,assert_array_equal對標量有特殊處理。這裏測試檢查每個值x是 3:

>>> x = np.full((2, 5), fill_value=3)
>>> np.testing.assert_array_equal(x, 3)

相關用法


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