numpy.ma.allclose#

ma.allclose(a, b, masked_equal=True, rtol=1e-05, atol=1e-08)[原始碼]#

如果兩個陣列在容差範圍內逐元素相等,則返回 True。

此函數等效於 allclose,但遮罩值會被視為相等(預設)或不相等,具體取決於 masked_equal 參數。

參數:
a, barray_like

要比較的輸入陣列。

masked_equalbool,可選

是否將 ab 中的遮罩值視為相等 (True) 或不相等 (False)。預設情況下,它們被視為相等。

rtolfloat,可選

相對容差。相對差異等於 rtol * b。預設值為 1e-5。

atolfloat,可選

絕對容差。絕對差異等於 atol。預設值為 1e-8。

返回:
ybool

如果兩個陣列在給定容差範圍內相等,則返回 True,否則返回 False。如果任一陣列包含 NaN,則返回 False。

參見

all, any
numpy.allclose

非遮罩的 allclose

註解

如果以下方程式逐元素為 True,則 allclose 返回 True

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

如果 ab 的所有元素在給定容差範圍內相等,則返回 True。

範例

>>> import numpy as np
>>> a = np.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 = np.ma.array([1e10, 1e-8, -42.0], mask=[0, 0, 1])
>>> np.ma.allclose(a, b)
False
>>> a = np.ma.array([1e10, 1e-8, 42.0], mask=[0, 0, 1])
>>> b = np.ma.array([1.00001e10, 1e-9, -42.0], mask=[0, 0, 1])
>>> np.ma.allclose(a, b)
True
>>> np.ma.allclose(a, b, masked_equal=False)
False

遮罩值不會直接比較。

>>> a = np.ma.array([1e10, 1e-8, 42.0], mask=[0, 0, 1])
>>> b = np.ma.array([1.00001e10, 1e-9, 42.0], mask=[0, 0, 1])
>>> np.ma.allclose(a, b)
True
>>> np.ma.allclose(a, b, masked_equal=False)
False