numpy.testing.assert_approx_equal

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.testing.assert_approx_equal.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

numpy.testing.assert_approx_equal(actual, desired, significant=7, err_msg='', verbose=True)[source]

如果两个项不等于有效数字,则引发AssertionError。

注意

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

给定两个数字,检查它们大致相等。大约等于定义为同意的有效数字的数量。

参数:

actual:scalar

要检查的对象。

所需:标量

预期对象。

significant:int,可选

所需精度,默认为7。

err_msg:str,可选

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

verbose:bool,可选

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

上升:

AssertionError

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

也可以看看

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

assert_array_almost_equal_nulpassert_array_max_ulpassert_equal

例子

>>> np.testing.assert_approx_equal(0.12345677777777e-20, 0.1234567e-20)
>>> np.testing.assert_approx_equal(0.12345670e-20, 0.12345671e-20,
                                   significant=8)
>>> np.testing.assert_approx_equal(0.12345670e-20, 0.12345672e-20,
                                   significant=8)
...
<type 'exceptions.AssertionError'>:
Items are not equal to 8 significant digits:
 ACTUAL: 1.234567e-021
 DESIRED: 1.2345672000000001e-021

引发异常的计算条件为

>>> abs(0.12345670e-20/1e-21 - 0.12345672e-20/1e-21) >= 10**-(8-1)
True