Skip to main content
`Ctrl`+`K`

# numpy.ma.allclose

ma.allclose(a, b, masked_equal=True, rtol=1e-05, atol=1e-08)

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

  This function is equivalent to `allclose` except that masked values are treated as equal (default) or unequal, depending on the `masked_equal` argument.

  Parameters:
    a, b array_like

      Input arrays to compare.

    masked_equal bool, optional

      Whether masked values in a and b are considered equal (True) or not (False). They are considered equal by default.

    rtol float, optional

      Relative tolerance. The relative difference is equal to `rtol * b`. Default is 1e-5.

    atol float, optional

      Absolute tolerance. The absolute difference is equal to atol. Default is 1e-8.

  Returns:
    y bool

      Returns True if the two arrays are equal within the given tolerance, False otherwise. If either array contains NaN, then False is returned.

  See also

  `all`, `any`
  `numpy.allclose`

    the non-masked `allclose`.

  Notes

  If the following equation is element-wise True, then `allclose` returns True:

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

  Return True if all elements of a and b are equal subject to given tolerances.

  Examples

      >>> import numpy as np
      >>> a = np.ma.array([1e10, 1e-7, 42.0], mask=[0, 0, 1])
      >>> a
      masked_array(data=[10000000000.0, 1e-07, --],
                   mask=[False, False,  True],
             fill_value=1e+20)
      >>> b = np.ma.array([1e10, 1e-8, -42.0], mask=[0, 0, 1])
      >>> np.ma.allclose(a, b)
      False

      >>> a = np.ma.array([1e10, 1e-8, 42.0], mask=[0, 0, 1])
      >>> b = np.ma.array([1.00001e10, 1e-9, -42.0], mask=[0, 0, 1])
      >>> np.ma.allclose(a, b)
      True
      >>> np.ma.allclose(a, b, masked_equal=False)
      False

  Masked values are not compared directly.

      >>> a = np.ma.array([1e10, 1e-8, 42.0], mask=[0, 0, 1])
      >>> b = np.ma.array([1.00001e10, 1e-9, 42.0], mask=[0, 0, 1])
      >>> np.ma.allclose(a, b)
      True
      >>> np.ma.allclose(a, b, masked_equal=False)
      False