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,可選
是否將 a 和 b 中的遮罩值視為相等 (True) 或不相等 (False)。預設情況下,它們被視為相等。
- rtolfloat,可選
相對容差。相對差異等於
rtol * b
。預設值為 1e-5。- atolfloat,可選
絕對容差。絕對差異等於 atol。預設值為 1e-8。
- 返回:
- ybool
如果兩個陣列在給定容差範圍內相等,則返回 True,否則返回 False。如果任一陣列包含 NaN,則返回 False。
參見
all
,any
numpy.allclose
非遮罩的
allclose
。
註解
如果以下方程式逐元素為 True,則
allclose
返回 Trueabsolute(`a` - `b`) <= (`atol` + `rtol` * absolute(`b`))
如果 a 和 b 的所有元素在給定容差範圍內相等,則返回 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