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

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

numpy.testing.assert_array_almost_equal_nulp

numpy.testing.assert_array_almost_equal_nulp(x, y, nulp=1)    [source]

比较两个数组相对于它们的间距。

这是比较振幅可变的两个数组的相对可靠的方法。

参数 :

x, y :array_like

输入数组。

nulpint, 可选

公差的最后一位的最大单位数(请参见注释)。默认值为1。

返回值 :

None

Raises :

AssertionError

如果一个或多个元素的x和y之间的间距大于nulp。

Notes

如果不满足以下条件,则会引发一个断言:

abs(x - y) <= nulps * spacing(maximum(abs(x), abs(y)))

例子

>>> x = np.array([1., 1e-10, 1e-20])
>>> eps = np.finfo(x.dtype).eps
>>> np.testing.assert_array_almost_equal_nulp(x, x*eps/2 + x)
>>> np.testing.assert_array_almost_equal_nulp(x, x*eps + x)
Traceback (most recent call last):
  ...
AssertionError: X and Y are not equal to 1 ULP (max is 2)
推荐阅读
cjavapy编程之路首页