numpy.testing.assert_array_almost_equal
numpy.testing.assert_array_almost_equal(x, y, decimal=6, err_msg='', verbose=True) [source]
如果两个对象不等于期望的精度,则引发AssertionError。
注意:为了更一致的浮点比较,建议使用assert_allclose
,assert_array_almost_equal_nulp
或assert_array_max_ulp
之一来代替此函数。
该测试将验证相同的形状以及actual
和desired
的元素是否令人满意。
abs(desired-actual) < 1.5 * 10**(-decimal)
与原始记录相比,这是一个较宽松的测试,但与实际实现对不完整的舍入相一致。形状不匹配或值冲突会引发异常。与numpy中的标准用法相反,NaN就像数字一样进行比较,如果两个对象在相同位置都具有NaN,则不会引发断言。
参数 : | x :array_like 实际检查对象。 y :array_like 期望的预期对象。 decimal : 所需精度,默认为 err_msg : 发生故障时要打印的错误消息。 verbose : 如果为 |
Raises : | AssertionError 如果实际和期望值不等于指定的精度。 |
例子
第一个断言不会引发异常
>>> np.testing.assert_array_almost_equal([1.0,2.333,np.nan],
... [1.0,2.333,np.nan])
>>> np.testing.assert_array_almost_equal([1.0,2.33333,np.nan],
... [1.0,2.33339,np.nan], decimal=5)
Traceback (most recent call last):
...
AssertionError:\nArrays are not almost equal to 5 decimals
\nMismatched elements: 1 / 3 (33.3%)
Max absolute difference: 6.e-05
Max relative difference: 2.57136612e-05
x: array([1. , 2.33333, nan])
y: array([1. , 2.33339, nan])
>>> np.testing.assert_array_almost_equal([1.0,2.33333,np.nan],
... [1.0,2.33333, 5], decimal=5)
Traceback (most recent call last):
...
AssertionError:\nArrays are not almost equal to 5 decimals
\nx and y nan location mismatch:
x: array([1. , 2.33333, nan])
y: array([1. , 2.33333, 5. ])