numpy.ma.allclose

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.ma.allclose.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

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,可选

是否ab中的掩码值被视为等于(True)还是不为(False)。默认情况下,它们被视为相等。

rtol:float,可选

相对公差。相对差等于rtol * b默认值为1e-5。

atol:float,可选

绝对公差。绝对差等于atol默认值为1e-8。

返回:

y:bool

如果两个数组在给定容差内相等,则返回True,否则返回False。如果数组包含NaN,则返回False。

也可以看看

allany

numpy.allclose
非掩码allclose

笔记

如果以下方程是元素方式为True,则allclose返回True:

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

如果ab的所有元素等于给定容差,则返回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