开发手册 欢迎您!
软件开发者资料库

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

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

numpy.testing.assert_approx_equal

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

要检查的对象。

desired :scalar

预期的对象。

significantint, 可选

所需精度,默认为7

err_msgstr, 可选

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

verbosebool, 可选

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

Raises :

AssertionError

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

例子

>>> 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)Traceback (most recent call last):    ...AssertionError:\nItems are not equal to 8 significant digits: ACTUAL: 1.234567e-21 DESIRED: 1.2345672e-21

引发异常的运行条件

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