上一主题

numpy.logical_xor

下一主题

numpy.isclose

numpy.allclose

numpy.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)[source]

如果两个数组在元素级别在容差内相等,则返回True。

公差值为正,通常为非常小的数字。将相对差(rtol * abs(b))和绝对差atol相加在一起来比较ab之间的绝对差。

如果数组包含一个或多个NaN,则返回False。如果在数组中的相同位置和相同的符号,则Infs被视为相等。

参数:

a, b : array_like

进行比较的输入数组。

rtol:float

相对容差参数(请参见注释)。

atol:float

绝对容差参数(见注释)。

equal_nan:bool

是否比较NaN的相等性。如果为True,则在输出数组中,a中的NaN将被视为等于b中的NaN。

版本1.10.0中的新功能。

返回:

allclose:bool

如果两个数组在给定容差内相等,则返回True;否则为假。

另见

iscloseallany

注释

如果下面的方程在元素级别为True,那么allclose返回True。

absolute(a - b) <= (atol + rtol * absolute(b))

上述方程在ab中不对称,因此在极少的情况下,allclose(a, b)可能不同于allclose(b, a)

例子

>>> np.allclose([1e10,1e-7], [1.00001e10,1e-8])
False
>>> np.allclose([1e10,1e-8], [1.00001e10,1e-9])
True
>>> np.allclose([1e10,1e-8], [1.0001e10,1e-9])
False
>>> np.allclose([1.0, np.nan], [1.0, np.nan])
False
>>> np.allclose([1.0, np.nan], [1.0, np.nan], equal_nan=True)
True