This is a pre-release version (2.5.0.dev0+git20251130.2de293a). Go to latest (2.4.4)
{ } Raw JSON

bundles / numpy 2.5.0.dev0+git20251130.2de293a / numpy / isclose

_ArrayFunctionDispatcher

numpy:isclose

source: /dev/numpy/build-install/usr/lib/python3.14/site-packages/numpy/_core/numeric.py :2371

Signature

def   isclose ( a b rtol = 1e-05 atol = 1e-08 equal_nan = False )

Summary

Returns a boolean array where two arrays are element-wise equal within a tolerance.

Extended Summary

The tolerance values are positive, typically very small numbers. The relative difference (rtol * abs(b)) and the absolute difference atol are added together to compare against the absolute difference between a and b.

Parameters

a, b : array_like

Input arrays to compare.

rtol : array_like

The relative tolerance parameter (see Notes).

atol : array_like

The absolute tolerance parameter (see Notes).

equal_nan : bool

Whether to compare NaN's as equal. If True, NaN's in a will be considered equal to NaN's in b in the output array.

Returns

y : array_like

Returns a boolean array of where a and b are equal within the given tolerance. If both a and b are scalars, returns a single boolean value.

Notes

For finite values, isclose uses the following equation to test whether two floating point values are equivalent.

absolute(a - b) <= (atol + rtol * absolute(b))

Unlike the built-in math.isclose, the above equation is not symmetric in a and b -- it assumes b is the reference value -- so that isclose(a, b) might be different from isclose(b, a).

The default value of atol is not appropriate when the reference value b has magnitude smaller than one. For example, it is unlikely that a = 1e-9 and b = 2e-9 should be considered "close", yet isclose(1e-9, 2e-9) is True with default settings. Be sure to select atol for the use case at hand, especially for defining the threshold below which a non-zero value in a will be considered "close" to a very small or zero value in b.

isclose is not defined for non-numeric data types. bool is considered a numeric data-type for this purpose.

Examples

import numpy as np
np.isclose([1e10,1e-7], [1.00001e10,1e-8])
np.isclose([1e10,1e-8], [1.00001e10,1e-9])
np.isclose([1e10,1e-8], [1.0001e10,1e-9])
np.isclose([1.0, np.nan], [1.0, np.nan])
np.isclose([1.0, np.nan], [1.0, np.nan], equal_nan=True)
np.isclose([1e-8, 1e-7], [0.0, 0.0])
np.isclose([1e-100, 1e-7], [0.0, 0.0], atol=0.0)
np.isclose([1e-10, 1e-10], [1e-20, 0.0])
np.isclose([1e-10, 1e-10], [1e-20, 0.999999e-10], atol=0.0)

See also

allclose
math.isclose

Aliases

  • numpy.isclose

Referenced by