上一主题

numpy.allclose

下一主题

numpy.array_equal

numpy.isclose

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

返回一个布尔数组,其中两个数组在容差内在元素方面相等。

公差值为正,通常为非常小的数字。The relative difference (rtol * abs(b)) and the absolute difference atol are added together to compare against the absolute difference between a and b.

参数:

a,b:array_like

输入数组进行比较。

rtol:float

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

atol:float

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

equal_nan:bool

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

返回:

y:array_like

返回其中ab在给定容差内相等的布尔数组。如果ab都是标量,则返回单个布尔值。

也可以看看

allclose

笔记

版本1.7.0中的新功能。

对于有限值,isclose使用以下公式来测试两个浮点值是否相等。

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

上述方程在ab中不对称,因此isclose(a,b)可能不同于isclose ,a)

例子

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