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.

Примечания

Если следующее уравнение поэлементно истинно, то 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