numpy.allclose
- numpy.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)[source]
-
Возвращает True, если два массива равны по элементам в пределах заданной точности.
Значения точности положительные, обычно очень малые числа. Относительная разница (
rtol* abs(b)) и абсолютная разницаatolскладываются вместе, чтобы сравнить с абсолютной разницей междуaиb.Предупреждение
По умолчанию
atolне подходит для сравнения чисел с величинами намного меньшими единицы (см. Примечания).NaN считаются равными, если они находятся в одном месте и если
equal_nan=True. Бесконечности считаются равными, если они находятся в одном месте и имеют одинаковый знак в обоих массивах.- Параметры:
-
- a, barray_like
-
Массивы для сравнения.
- rtolarray_like
-
Параметр относительной точности (см. Примечания).
- atolarray_like
-
Параметр абсолютной точности (см. Примечания).
- equal_nanbool
-
Сравнивать ли NaN как равные. Если True, NaN в
aбудут считаться равными NaN вbв выходном массиве.В версии 1.10.0.
- Возвращает:
-
- allclosebool
-
Возвращает True, если два массива равны в пределах заданной точности; False в противном случае.
Примечания
Если следующее уравнение выполняется по элементам, то allclose возвращает True.:
absolute(a - b) <= (atol + rtol * absolute(b))
Вышеприведенное уравнение несимметрично в
aиb, поэтомуallclose(a, b)может отличаться отallclose(b, a)в некоторых редких случаях.Значение по умолчанию для
atolне подходит, когда опорное значениеbимеет величину меньше единицы. Например, маловероятно, чтоa = 1e-9иb = 2e-9следует считать «близкими», ноallclose(1e-9, 2e-9)равноTrueпри значениях по умолчанию. Убедитесь, что вы выбираетеatolдля конкретного случая, особенно для определения порога, ниже которого ненулевое значение вaбудет считаться «близким» к очень малому или нулевому значению вb.Сравнение
aиbиспользует стандартное векторизацию, что означает, чтоaиbне обязательно должны иметь одинаковую форму для того, чтобыallclose(a, b)оценивалось как True. То же самое верно дляequal, но не дляarray_equal.allcloseне определено для типов данных, не являющихся числовыми.boolдля этой цели считается числовым типом данных.Примеры
>>> np.allclose([1e10,1e-7], [1.00001e10,1e-8]) False >>> np.allclose([1e10,1e-8], [1.00001e10,1e-9]) True >>> np.allclose([1e10,1e-8], [1.0001e10,1e-9]) False >>> np.allclose([1.0, np.nan], [1.0, np.nan]) False >>> np.allclose([1.0, np.nan], [1.0, np.nan], equal_nan=True) True
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.allclose.html