Python numpy.testing.assert_almost_equal函数方法的使用

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍一下NumPy中testing.assert_almost_equal方法的使用。

numpy.testing.assert_almost_equal

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

如果两个项不等于期望的精度,则引发AssertionError。

注意:为了更一致的浮点比较,建议使用assert_allcloseassert_array_almost_equal_nulpassert_array_max_ulp之一来代替此函数。

该测试验证actualdesirable的元素是否令人满意。

abs(desired-actual) < 1.5 * 10**(-decimal)

这是一个比最初记录的宽松的测试,但与assert_array_almost_equal中的实际实现对舍入变幻无误相一致。在冲突的值上引发异常。对于ndarray,这委托给assert_array_almost_equal

参数 :

actual :array_like

要检查的对象。

desired :array_like

预期的对象。

decimalint, 可选

所需精度,默认为7。

err_msgstr, 可选

发生故障时要打印的错误消息。

verbosebool, 可选

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

Raises :

AssertionError

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

例子

>>> import numpy.testing as npt
>>> npt.assert_almost_equal(2.3333333333333, 2.33333334)
>>> npt.assert_almost_equal(2.3333333333333, 2.33333334, decimal=10)
Traceback (most recent call last):
    ...
AssertionError:\nArrays are not almost equal to 10 decimals
 ACTUAL: 2.3333333333333
 DESIRED: 2.33333334
>>> npt.assert_almost_equal(np.array([1.0,2.3333333333333]),
...                         np.array([1.0,2.33333334]), decimal=9)
Traceback (most recent call last):
    ...
AssertionError:\nArrays are not almost equal to 9 decimals
\nMismatched elements: 1 / 2 (50%)
Max absolute difference: 6.66669964e-09
Max relative difference: 2.85715698e-09
 x: array([1.         , 2.333333333])
 y: array([1.        , 2.33333334])
推荐阅读
cjavapy编程之路首页