numpy.
isclose
返回一个布尔数组,其中两个数组在一个公差内按元素方向相等。
公差值为正数,通常非常小。相对差异 (rtol *ABS (b ))和绝对差异 atol 加在一起比较 a 和 b .
警告
默认值 atol 不适合比较比一小得多的数字(见注释)。
要比较的输入数组。
相对公差参数(见注释)。
绝对公差参数(见注释)。
是否将Nan的值比较为相等。如果是真的,南在 a 将被视为等于 b 在输出数组中。
返回Where的布尔数组 a 和 b 在给定的公差范围内相等。如果两者 a 和 b 是标量,返回单个布尔值。
参见
allclose
math.isclose
笔记
1.7.0 新版功能.
对于有限值,isclose使用以下公式来测试两个浮点值是否相等。
绝对的 (a - b < < (atol + rtol *绝对 (b )
不像内置的 math.isclose ,上述方程在 a 和 b ——它假定 b 是参考值——所以 isclose(a, b) 可能不同于 isclose(b, a) . 此外,ATOL的默认值不是零,用于确定哪些小值应被视为接近零。默认值适用于顺序一致性的期望值:如果期望值明显小于一,则可能导致误报。 atol 应该为手头的用例仔细选择。的零值 atol 将导致 False 如果任一 a 或 b 是零。
isclose 未为非数字数据类型定义。
实例
>>> 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])