On this page
numpy.isclose
numpy.isclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)[source]-
Returns a boolean array where two arrays are element-wise equal within a tolerance.
The tolerance values are positive, typically very small numbers. The relative difference (
rtol* abs(b)) and the absolute differenceatolare added together to compare against the absolute difference betweenaandb.Warning
The default
atolis not appropriate for comparing numbers that are much smaller than one (see Notes).Parameters: -
a, b : array_like -
Input arrays to compare.
-
rtol : float -
The relative tolerance parameter (see Notes).
-
atol : float -
The absolute tolerance parameter (see Notes).
-
equal_nan : bool -
Whether to compare NaN’s as equal. If True, NaN’s in
awill be considered equal to NaN’s inbin the output array.
Returns: -
y : array_like -
Returns a boolean array of where
aandbare equal within the given tolerance. If bothaandbare scalars, returns a single boolean value.
See also
Notes
New in version 1.7.0.
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 inaandb– it assumesbis the reference value – so thatisclose(a, b)might be different fromisclose(b, a). Furthermore, the default value of atol is not zero, and is used to determine what small values should be considered close to zero. The default value is appropriate for expected values of order unity: if the expected values are significantly smaller than one, it can result in false positives.atolshould be carefully selected for the use case at hand. A zero value foratolwill result inFalseif eitheraorbis zero.Examples
>>> 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–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.isclose.html