当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。