numpy.isclose #

麻木的。isclose ( a , b , rtol = 1e-05 , atol = 1e-08 , equal_nan = False ) [来源] #

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

容差值为正,通常非常小。将相对差值 ( rtol * abs( b )) 和绝对差值 atol相加,以与ab之间的绝对差值进行比较。

警告

默认atol不适合比较远小于 1 的数字(请参阅注释)。

参数
a, b类似数组

输入要比较的数组。

实时浮动

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

阿托浮标

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

equal_nan布尔值

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

返回
y类似数组

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

也可以看看

allclose
math.isclose

笔记

1.7.0 版本中的新增内容。

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

绝对( a - b ) <= ( atol + rtol * 绝对( b ))

与内置的 不同,上面的方程在abmath.isclose中不对称- 它假设b是参考值 - 因此 isclose(a, b)可能与isclose(b, a)不同。此外,atol 的默认值不为零,用于确定哪些小值应被视为接近于零。默认值适用于顺序统一的预期值:如果预期值明显小于 1,则可能会导致误报。 应根据当前的用例仔细选择atol 。如果ab为零,则atol的零值将导致False 。

isclose没有为非数字数据类型定义。 为此目的, bool被视为数字数据类型。

例子

>>> 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])
>>> np.isclose([1e-8, 1e-7], [0.0, 0.0])
array([ True, False])
>>> np.isclose([1e-100, 1e-7], [0.0, 0.0], atol=0.0)
array([False, False])
>>> np.isclose([1e-10, 1e-10], [1e-20, 0.0])
array([ True,  True])
>>> np.isclose([1e-10, 1e-10], [1e-20, 0.999999e-10], atol=0.0)
array([False,  True])