numpy.isclose
- numpy.isclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)[source]
-
Возвращает булеву массив, где два массива равны по элементам в пределах заданной точности.
Значения толерантности положительные, обычно очень маленькие числа. Относительная разница (
rtol* abs(b)) и абсолютное различиеatolскладываются, чтобы сравнить с абсолютным различием междуaиb.Предупреждение
По умолчанию
atolне подходит для сравнения чисел с величинами намного меньше единицы (см. Примечания).- Параметры:
-
- a, barray_like
-
Входные массивы для сравнения.
- rtolarray_like
-
Параметр относительной толерантности (см. Примечания).
- atolarray_like
-
Параметр абсолютной толерантности (см. Примечания).
- equal_nanbool
-
Сравнивать ли NaN как равные. Если True, NaN в
aбудут считаться равными NaN вbв выходном массиве.
- Возвращает:
-
- yarray_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не подходит, когда эталонное значениеbимеет величину меньше единицы. Например, маловероятно, чтоa = 1e-9иb = 2e-9должны считаться «близкими», ноisclose(1e-9, 2e-9)равноTrueпри стандартных настройках. Убедитесь, что вы выбираетеatolдля данного случая использования, особенно при определении порога, ниже которого ненулевое значение вaбудет считаться «близким» к очень малому или нулевому значению вb.iscloseне определено для типов данных, отличных от числовых.boolсчитается числовым типом данных для этой цели.Примеры
>>> 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]) >>> np.isclose([1e-100, 1e-7], [0.0, 0.0], atol=0.0) array([False, False]) >>> np.isclose([1e-10, 1e-10], [1e-20, 0.0]) array([ True, True]) >>> np.isclose([1e-10, 1e-10], [1e-20, 0.999999e-10], atol=0.0) array([False, True])
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.isclose.html