# numpy.allclose

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

  Returns True if 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.

  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_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 a will be considered equal to NaN’s in b in the output array.

      New in version 1.10.0.

  Returns:
    allclose bool

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

  See also

  `isclose`, `all`, `any`, `equal`

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

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