Skip to main content
`Ctrl`+`K`

# numpy.testing.assert_array_almost_equal

testing.assert_array_almost_equal(actual, desired, decimal=6, err_msg='', verbose=True)

  Raises an AssertionError if two objects are not equal up to desired precision.

  Note

  It is recommended to use one of `assert_allclose`, `assert_array_almost_equal_nulp` or `assert_array_max_ulp` instead of this function for more consistent floating point comparisons.

  The test verifies identical shapes and that the elements of `actual` and `desired` satisfy:

      abs(desired-actual) < 1.5 * 10**(-decimal)

  That is a looser test than originally documented, but agrees with what the actual implementation did up to rounding vagaries. An exception is raised at shape mismatch or conflicting values. In contrast to the standard usage in numpy, NaNs are compared like numbers, no assertion is raised if both objects have NaNs in the same positions.

  Parameters:
    actual array_like

      The actual object to check.

    desired array_like

      The desired, expected object.

    decimal int, optional

      Desired precision, default is 6.

    err_msg str, optional

      The error message to be printed in case of failure.

    verbose bool, optional

      If True, the conflicting values are appended to the error message.

  Raises:
    AssertionError

      If actual and desired are not equal up to specified precision.

  See also

  `assert_allclose`

    Compare two array_like objects for equality with desired relative and/or absolute precision.

  `assert_array_almost_equal_nulp`, `assert_array_max_ulp`, `assert_equal`

  Examples

  the first assert does not raise an exception

      >>> np.testing.assert_array_almost_equal([1.0,2.333,np.nan],
      ...                                      [1.0,2.333,np.nan])

      >>> np.testing.assert_array_almost_equal([1.0,2.33333,np.nan],
      ...                                      [1.0,2.33339,np.nan], decimal=5)
      Traceback (most recent call last):
          ...
      AssertionError:
      Arrays are not almost equal to 5 decimals

      Mismatched elements: 1 / 3 (33.3%)
      Mismatch at index:
       [1]: 2.33333 (ACTUAL), 2.33339 (DESIRED)
      Max absolute difference among violations: 6.e-05
      Max relative difference among violations: 2.57136612e-05
       ACTUAL: array([1.     , 2.33333,     nan])
       DESIRED: array([1.     , 2.33339,     nan])

      >>> np.testing.assert_array_almost_equal([1.0,2.33333,np.nan],
      ...                                      [1.0,2.33333, 5], decimal=5)
      Traceback (most recent call last):
          ...
      AssertionError:
      Arrays are not almost equal to 5 decimals

      nan location mismatch:
       ACTUAL: array([1.     , 2.33333,     nan])
       DESIRED: array([1.     , 2.33333, 5.     ])