Spec-Zone.ru › NumPy 2.0

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 в противном случае.

См. также

isclose, all, any, equal

Примечания

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API