bundles / numpy 2.4.4 / numpy / allclose
_ArrayFunctionDispatcher
numpy:allclose
source: /numpy/_core/numeric.py :2290
Signature
def allclose ( a , b , rtol = 1e-05 , atol = 1e-08 , equal_nan = False ) Summary
Returns True if 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.
NaNs are treated as equal if they are in the same place and if equal_nan=True. Infs are treated as equal if they are in the same place and of the same sign in both arrays.
Parameters
a, b: array_likeInput arrays to compare.
rtol: array_likeThe relative tolerance parameter (see Notes).
atol: array_likeThe absolute tolerance parameter (see Notes).
equal_nan: boolWhether to compare NaN's as equal. If True, NaN's in
awill be considered equal to NaN's inbin the output array.
Returns
allclose: boolReturns True if the two arrays are equal within the given tolerance; False otherwise.
Notes
If the following equation is element-wise True, then allclose returns True.
absolute(a - b) <= (atol + rtol * absolute(b))The above equation is not symmetric in a and b, so that allclose(a, b) might be different from allclose(b, a) in some rare cases.
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 allclose(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.
The comparison of a and b uses standard broadcasting, which means that a and b need not have the same shape in order for allclose(a, b) to evaluate to True. The same is true for equal but not array_equal.
allclose is not defined for non-numeric data types. bool is considered a numeric data-type for this purpose.
Examples
import numpy as np np.allclose([1e10,1e-7], [1.00001e10,1e-8])✓
np.allclose([1e10,1e-8], [1.00001e10,1e-9])
✓np.allclose([1e10,1e-8], [1.0001e10,1e-9])
✓np.allclose([1.0, np.nan], [1.0, np.nan])
✓np.allclose([1.0, np.nan], [1.0, np.nan], equal_nan=True)
✓See also
- all
- any
- equal
- isclose
Aliases
-
numpy.allclose
Referenced by
This package
Other packages
- astropy astropy.io.fits.diff:FITSDiff.__init__
- astropy astropy.io.fits.diff:HDUDiff.__init__
- astropy astropy.io.fits.diff:HeaderDiff.__init__
- astropy astropy.io.fits.diff:ImageDataDiff.__init__
- astropy astropy.io.fits.diff:TableDataDiff.__init__
- astropy astropy.utils.diff:diff_values
- astropy astropy.utils.diff:report_diff_values
- astropy astropy.utils.diff:where_not_allclose
- scipy scipy.linalg._cythonized_array_utils:ishermitian
- scipy scipy.linalg._cythonized_array_utils:issymmetric