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,anynumpy.allcloseнезамаскированные
allclose.
Примечания
Если следующее уравнение поэлементно истинно, то
allcloseвозвращает True:absolute(`a` - `b`) <= (`atol` + `rtol` * absolute(`b`))
Вернуть True, если все элементы a и b равны с учетом заданных допусков.
Примеры
>>> 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