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 atolerance.

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).

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:
yarray_like

Returns a boolean array of wherea andb are equal within thegiven tolerance. If botha andb are scalars, returns a singleboolean value.

Notes

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

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

Unlike the built-inmath.isclose, the above equation is not symmetricina andb – it assumesb is the reference value – so thatisclose(a, b) might be different fromisclose(b, a).

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”, yetisclose(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.

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

Examples

>>>importnumpyasnp>>>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])
On this page