Spec-Zone.ru › NumPy 2.0

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 являются скалярами, возвращает одно булево значение.

См. также

allclose
math.isclose

Примечания

Введено в версии 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

Spec-Zone.ru

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