numpy.testing.assert_array_almost_equal

numpy.testing.assert_array_almost_equal(x, y, decimal=6, err_msg='', verbose=True)[source]

如果两个对象不等于所需精度,则引发AssertionError。

注意

建议使用assert_allcloseassert_array_almost_equal_nulpassert_array_max_ulp之一来代替此函数,以获得更一致的浮点比较。

测试验证相同的形状并且用abs(期望 - 实际) 0.5 * 10 **( - 十进制)

给定两个array_like对象,检查形状是否相等,并且这些对象的所有元素几乎相等。在形状不匹配或冲突值时引发异常。与numpy中的标准用法相反,NaNs是以数字进行比较的,如果两个对象在相同位置具有NaN,则不会产生断言。

参数:

x:array_like

要检查的实际对象。

y:array_like

期望的,期望的对象。

十进制:int,可选

所需的精度,默认为6。

err_msg:str,可选

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

verbose:bool,可选

如果为True,则冲突的值将附加到错误消息。

上升:

AssertionError

如果实际和期望的不等于指定的精度。

也可以看看

assert_allclose
将两个array_like对象与所需的相对和/或绝对精度进行比较。

assert_array_almost_equal_nulpassert_array_max_ulpassert_equal

例子

第一个断言不会引发异常

>>> 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)
...
<type 'exceptions.AssertionError'>:
AssertionError:
Arrays are not almost equal

(mismatch 50.0%)
 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)
<type 'exceptions.ValueError'>:
ValueError:
Arrays are not almost equal
 x: array([ 1.     ,  2.33333,      NaN])
 y: array([ 1.     ,  2.33333,  5.     ])