numpy.allclose#

numpy.allclose(a,b,rtol=1e-05,atol=1e-08,equal_nan=False)[source]#

Returns True if two arrays are element-wise equal within a tolerance.

The tolerance values are positive, typically very small numbers. Therelative difference (rtol * abs(b)) and the absolute differenceatol are added together to compare against the absolute differencebetweena andb.

Warning

The defaultatol is not appropriate for comparing numberswith magnitudes much smaller than one (see Notes).

NaNs are treated as equal if they are in the same place and ifequal_nan=True. Infs are treated as equal if they are in the sameplace and of the same sign in both arrays.

Parameters:
a, barray_like

Input arrays to compare.

rtolarray_like

The relative tolerance parameter (see Notes).

atolarray_like

The absolute tolerance parameter (see Notes).

equal_nanbool

Whether to compare NaN’s as equal. If True, NaN’s ina will beconsidered equal to NaN’s inb in the output array.

Returns:
allclosebool

Returns True if the two arrays are equal within the giventolerance; False otherwise.

Notes

If the following equation is element-wise True, then allclose returnsTrue.:

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

The above equation is not symmetric ina andb, so thatallclose(a,b) might be different fromallclose(b,a) insome rare cases.

The default value ofatol is not appropriate when the reference valueb has magnitude smaller than one. For example, it is unlikely thata=1e-9 andb=2e-9 should be considered “close”, yetallclose(1e-9,2e-9) isTrue with default settings. Be sureto selectatol for the use case at hand, especially for defining thethreshold below which a non-zero value ina will be considered “close”to a very small or zero value inb.

The comparison ofa andb uses standard broadcasting, whichmeans thata andb need not have the same shape in order forallclose(a,b) to evaluate to True. The same is true forequal but notarray_equal.

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

Examples

>>>importnumpyasnp>>>np.allclose([1e10,1e-7],[1.00001e10,1e-8])False
>>>np.allclose([1e10,1e-8],[1.00001e10,1e-9])True
>>>np.allclose([1e10,1e-8],[1.0001e10,1e-9])False
>>>np.allclose([1.0,np.nan],[1.0,np.nan])False
>>>np.allclose([1.0,np.nan],[1.0,np.nan],equal_nan=True)True
On this page