numpy.ma.allclose¶
-
numpy.ma.
allclose
(a, b, masked_equal=True, rtol=1e-05, atol=1e-08)[source]¶ 如果两个数组在元素方面在公差内相等,则返回True。
此函数等效于
allclose
,但根据masked_equal
参数,被屏蔽的值被视为等于(默认)或不等。参数: a,b:array_like
输入数组进行比较。
masked_equal:bool,可选
是否a和b中的掩码值被视为等于(True)还是不为(False)。默认情况下,它们被视为相等。
rtol:float,可选
相对公差。相对差等于
rtol * b
。默认值为1e-5。atol:float,可选
绝对公差。绝对差等于atol。默认值为1e-8。
返回: y:bool
如果两个数组在给定容差内相等,则返回True,否则返回False。如果数组包含NaN,则返回False。
笔记
如果以下方程是元素方式为True,则
allclose
返回True:absolute(`a` - `b`) <= (`atol` + `rtol` * absolute(`b`))
如果a和b的所有元素等于给定容差,则返回True。
例子
>>> a = ma.array([1e10, 1e-7, 42.0], mask=[0, 0, 1]) >>> a masked_array(data = [10000000000.0 1e-07 --], mask = [False False True], fill_value = 1e+20) >>> b = ma.array([1e10, 1e-8, -42.0], mask=[0, 0, 1]) >>> ma.allclose(a, b) False
>>> a = ma.array([1e10, 1e-8, 42.0], mask=[0, 0, 1]) >>> b = ma.array([1.00001e10, 1e-9, -42.0], mask=[0, 0, 1]) >>> ma.allclose(a, b) True >>> ma.allclose(a, b, masked_equal=False) False
掩蔽值不直接比较。
>>> a = ma.array([1e10, 1e-8, 42.0], mask=[0, 0, 1]) >>> b = ma.array([1.00001e10, 1e-9, 42.0], mask=[0, 0, 1]) >>> ma.allclose(a, b) True >>> ma.allclose(a, b, masked_equal=False) False