numpy.testing.assert_array_equal

testing.assert_array_equal(x, y, err_msg='', verbose=True)[源代码]

如果两个类似数组的对象不相等,则引发断言错误。

给定两个类似数组的对象,检查其形状是否相等以及这些对象的所有元素是否相等(但有关标量的特殊处理,请参见注释)。在形状不匹配或值冲突时引发异常。与numpy中的标准用法不同,nan就像数字一样进行比较,如果两个对象的nan位于相同的位置,则不会引发断言。

建议使用浮点数验证相等性的一般注意事项。

参数
xarray_like

要检查的实际对象。

yarray_like

所需的预期对象。

err_msg可选的STR

出现故障时要打印的错误消息。

verbose可选的布尔

如果为true,则将冲突值追加到错误消息中。

加薪
AssertionError

如果实际对象和所需对象不相等。

参见

assert_allclose

比较两个类似数组的对象,以获得所需的相对和/或绝对精度。

assert_array_almost_equal_nulp, assert_array_max_ulp, assert_equal

笔记

当其中一个 xy 一个是标量,另一个是类数组,函数检查类数组对象的每个元素是否等于标量。

实例

第一个断言不会引发异常:

>>> 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)