testing.
assert_array_equal
如果两个类似数组的对象不相等,则引发断言错误。
给定两个类似数组的对象,检查其形状是否相等以及这些对象的所有元素是否相等(但有关标量的特殊处理,请参见注释)。在形状不匹配或值冲突时引发异常。与numpy中的标准用法不同,nan就像数字一样进行比较,如果两个对象的nan位于相同的位置,则不会引发断言。
建议使用浮点数验证相等性的一般注意事项。
要检查的实际对象。
所需的预期对象。
出现故障时要打印的错误消息。
如果为true,则将冲突值追加到错误消息中。
如果实际对象和所需对象不相等。
参见
assert_allclose
比较两个类似数组的对象,以获得所需的相对和/或绝对精度。
assert_array_almost_equal_nulp
assert_array_max_ulp
assert_equal
笔记
当其中一个 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)