numpy.isclose
-
numpy.isclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)[source] -
Возвращает булеву массив, где два массива попарно равны в пределах заданной толерантности.
Значения толерантности являются положительными, обычно очень маленькими числами. Относительная разница (
rtol* abs(b)) и абсолютная разницаatolскладываются, чтобы сравнить их с абсолютной разницей междуaиb.Предупреждение
Значение по умолчанию для
atolне подходит для сравнения чисел, намного меньших единицы (см. Примечания).Параметры: -
a, b : array_like -
Входные массивы для сравнения.
-
rtol : float -
Параметр относительной толерантности (см. Примечания).
-
atol : float -
Параметр абсолютной толерантности (см. Примечания).
-
equal_nan : bool -
Сравнивать ли NaN как равные. Если True, NaN в
aбудут считаться равными NaN вbв выходном массиве.
Возвращает: -
y : array_like -
Возвращает булев массив, где
aиbравны в пределах заданной толерантности. Если обаaиbявляются скалярами, возвращает одно булевое значение.
См. также
Примечания
Добавлена в версии 1.7.0.
Для конечных значений isclose использует следующее уравнение для проверки того, являются ли два значения с плавающей точкой эквивалентными.
absolute(a-b) <= (atol+rtol* absolute(b))В отличие от встроенной функции
math.isclose, вышеприведенное уравнение несимметрично относительноaиb– оно предполагает, чтоbявляется эталонным значением – поэтомуisclose(a, b)может отличаться отisclose(b, a). Кроме того, значение по умолчанию для atol не равно нулю и используется для определения, какие малые значения должны считаться близкими к нулю. Значение по умолчанию подходит для ожидаемых значений порядка единицы: если ожидаемые значения значительно меньше единицы, это может привести к ложным срабатываниям.atolследует тщательно подбирать для конкретного случая использования. Нулевое значение дляatolприведет кFalse, если либоaилиbравно нулю.Примеры
>>> np.isclose([1e10,1e-7], [1.00001e10,1e-8]) array([True, False]) >>> np.isclose([1e10,1e-8], [1.00001e10,1e-9]) array([True, True]) >>> np.isclose([1e10,1e-8], [1.0001e10,1e-9]) array([False, True]) >>> np.isclose([1.0, np.nan], [1.0, np.nan]) array([True, False]) >>> np.isclose([1.0, np.nan], [1.0, np.nan], equal_nan=True) array([True, True]) >>> np.isclose([1e-8, 1e-7], [0.0, 0.0]) array([ True, False], dtype=bool) >>> np.isclose([1e-100, 1e-7], [0.0, 0.0], atol=0.0) array([False, False], dtype=bool) >>> np.isclose([1e-10, 1e-10], [1e-20, 0.0]) array([ True, True], dtype=bool) >>> np.isclose([1e-10, 1e-10], [1e-20, 0.999999e-10], atol=0.0) array([False, True], dtype=bool)
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.16.1/reference/generated/numpy.isclose.html