w3resource

NumPy: Test whether two arrays are element-wise equal within a tolerance

NumPy: Basic Exercise-9 with Solution

Write a NumPy program to test whether two arrays are element-wise equal within a tolerance.

Note: 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.

Sample Solution :

Python Code :

import numpy as np
print("Test if two arrays are element-wise equal within a tolerance:")
print(np.allclose([1e10,1e-7], [1.00001e10,1e-8]))
print(np.allclose([1e10,1e-8], [1.00001e10,1e-9]))
print(np.allclose([1e10,1e-8], [1.0001e10,1e-9]))
print(np.allclose([1.0, np.nan], [1.0, np.nan]))
print(np.allclose([1.0, np.nan], [1.0, np.nan], equal_nan=True))

Sample Output:

Test if two arrays are element-wise equal within a tolerance:
False
True
False
False
True                         

Python Code Editor:


Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a NumPy program to test element-wise for complex number, real number of a given array. Also test if a given number is a scalar type or not.
Next: Write a NumPy program to create an element-wise comparison (greater, greater_equal, less and less_equal) of two given arrays.

What is the difficulty level of this exercise?

Test your Python skills with w3resource's quiz



Python: Tips of the Day

Merges two or more lists into a list of lists, combining elements from each of the input lists based on their positions

Example:

def tips_merge(*args, fill_value=None):
  max_length = max([len(lst) for lst in args])
  result = []
  for i in range(max_length):
    result.append([
      args[k][i] if i < len(args[k])
	  else fill_value for k in range(len(args))
    ])
  return result
print(tips_merge(['x', 'y'], [1, 2], [True, False])) 
print(tips_merge(['x'], [1, 2], [True, False])) 
print(tips_merge(['x'], [1, 2], [True, False], fill_value = '_')) 

Output:

[['x', 1, True], ['y', 2, False]]
[['x', 1, True], [None, 2, False]]
[['x', 1, True], ['_', 2, False]]