numpy.
isclose
(a,b,rtol = 1e-05,atol = 1e-08,equal_nan = False )[源代码] ¶返回一个布尔数组,其中两个数组在公差范围内按元素方式相等。
公差值是正的,通常很小。将相对差(rtol * abs(b))和绝对差 atol相加,以与a和b之间的绝对差进行比较。
警告
默认的atol不适用于比较比1小得多的数字(请参阅“注释”)。
输入数组进行比较。
相对公差参数(请参见注释)。
绝对公差参数(请参阅注释)。
是否将NaN相等。如果为True,NaN的在一个将被视为在等于NaN的b输出数组英寸
返回一个布尔数组,其中a和b在给定的公差范围内相等。如果a和b均为标量,则返回单个布尔值。
也可以看看
笔记
1.7.0版中的新功能。
对于有限值,isclose使用以下公式测试两个浮点值是否相等。
绝对(a - b)<=(atol + rtol *绝对(b))
与内置math.isclose
函数不同,上述方程式在a和b中不对称–假定b是参考值–因此
isclose(a,b)可能与isclose(b,a)不同。此外,atol的默认值不为零,并且用于确定应将哪些较小的值视为接近零。默认值适用于阶数为1的期望值:如果期望值明显小于1,则可能导致误报。
应该仔细选择atol作为手边的用例。如果a或b为atol的零值将导致False 是零。
例子
>>> 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])