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 difference atol are added together to compare against the absolute difference between a and b.
Warning
The default atol is not appropriate for comparing numbers with magnitudes much smaller than one (see Notes).
Input arrays to compare.
The relative tolerance parameter (see Notes).
The absolute tolerance parameter (see Notes).
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 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]) 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])
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4