w3resource

NumPy: Create an element-wise comparison (equal, equal within a tolerance) of two given arrays

NumPy: Basic Exercise-11 with Solution

Write a NumPy program to create an element-wise comparison (equal, equal within a tolerance) of two given arrays.

Sample Solution :

Python Code :

# Importing the NumPy library with an alias 'np'
import numpy as np

# Creating NumPy arrays 'x' and 'y' containing numbers for comparison
x = np.array([72, 79, 85, 90, 150, -135, 120, -10, 60, 100])
y = np.array([72, 79, 85, 90, 150, -135, 120, -10, 60, 100.000001])

# Printing a message indicating the original numbers stored in arrays 'x' and 'y'
print("Original numbers:")
print(x)
print(y)

# Performing element-wise comparison (equal) between arrays 'x' and 'y', and printing the result
print("Comparison - equal:")
print(np.equal(x, y))

# Checking if arrays 'x' and 'y' are element-wise equal within a tolerance, and printing the result
print("Comparison - equal within a tolerance:")
print(np.allclose(x, y)) 

Sample Output:

Original numbers:
[  72   79   85   90  150 -135  120  -10   60  100]
[  72.         79.         85.         90.        150.       -135.
  120.        -10.         60.        100.000001]
Comparison - equal:
[ True  True  True  True  True  True  True  True  True False]
Comparison - equal within a tolerance:
True                       

Explanation:

At first we declare two arrays x = np.array([72, 79, 85, 90, 150, -135, 120, -10, 60, 100]): and y = np.array([72, 79, 85, 90, 150, -135, 120, -10, 60, 100.000001]).

print(np.equal(x, y)): Here, the np.equal() function compares the elements of 'x' and 'y' element-by-element and checks whether they are equal.The function returns a boolean array [True, True, True, True, True, True, True, True, True, False], which is printed to the console. The last element is False because 100 is not exactly equal to 100.000001.

print(np.allclose(x, y)): This line uses the np.allclose() function to check if the two arrays are element-wise equal within a given tolerance (default relative tolerance rtol=1e-9, absolute tolerance atol=1e-12). In this case, the difference between the last elements (100 and 100.000001) is within the default tolerance, so the function returns True.

Python-Numpy Code Editor:

Previous: NumPy program to create an element-wise comparison (greater, greater_equal, less and less_equal) of two given arrays.
Next: NumPy program to create an array with the values 1, 7, 13, 105 and determine the size of the memory occupied by the array.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.