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 -
Вводные массивы для сравнения.
-
rtolfloat -
Параметр относительной толерантности (см. Примечания).
-
atolfloat -
Параметр абсолютной толерантности (см. Примечания).
-
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 не равно нулю и используется для определения, какие малые значения следует считать близкими к нулю. Значение по умолчанию подходит для ожидаемых значений порядка единицы: если ожидаемые значения значительно меньше единицы, это может привести к ложным срабатываниям.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]) >>> 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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.isclose.html