Numpy setxor1d() Function
The Numpy setxor1d() function computes the symmetric difference between two arrays. It returns a sorted array of unique elements that are present in either of the input arrays but not in both. This function is useful for identifying elements that are exclusive to one array when comparing two arrays.
In general, the setxor1d() function is analogous to the symmetric difference operation in set theory, where A B represents the elements that are in either set A or set B, but not in their intersection.
Syntax
Following is the syntax of the Numpy setxor1d() function −
numpy.setxor1d(ar1, ar2, assume_unique=False)
Parameters
Following are the parameters of the Numpy setxor1d() function −
- ar1: The first input array.
- ar2: The second input array.
- assume_unique (optional): If True, the input arrays are assumed to be unique, which can speed up the calculation. Default is False.
Return Type
This function returns a sorted 1D array containing unique elements that are present in one input array but not in the other.
Example
Following is a basic example of finding the symmetric difference between two arrays using the Numpy setxor1d() function −
import numpy as np
array1 = np.array([10, 20, 30, 40, 50])
array2 = np.array([30, 40, 70])
result = np.setxor1d(array1, array2)
print("Symmetric Difference:", result)
Output
Following is the output of the above code −
Symmetric Difference: [10 20 50 70]
Example: Usage of assume_unique Parameter
When assume_unique is set to True, the function skips internal uniqueness checks, improving performance when the arrays are known to contain unique elements −
import numpy as np
array1 = np.array([10, 20, 20, 40, 50])
array2 = np.array([20, 30, 70])
result = np.setxor1d(array1, array2, assume_unique=True)
print("Symmetric Difference with assume_unique=True:", result)
Output
Following is the output of the above code −
Symmetric Difference with assume_unique : [10 30 40 50 70]
Example: Strings Arrays as an Arguments
The setxor1d() function can also be used with string arrays. In the following example, we have found the elements exclusive to either array1 or array2 −
import numpy as np
array1 = np.array(["apple", "banana", "cherry"])
array2 = np.array(["banana", "grape"])
result = np.setxor1d(array1, array2)
print("Symmetric Difference:", result)
Output
Following is the output of the above code −
Symmetric Difference: ['apple' 'cherry' 'grape']