Numpy setdiff1d() Function



The Numpy setdiff1d() function finds the set difference of two arrays. It returns a sorted array of unique elements that are present in the first array but not in the second array. This function is useful for identifying elements that are unique to one array when comparing two arrays.

In general, the setdiff1d() function is analogous to the set difference operation in set theory, where A - B represents the elements that are present in set A but not in set B. This operation ensures that the result contains only the unique elements from the first input array that are absent in the second input array.

Syntax

Following is the syntax of the Numpy setdiff1d() function −

numpy.setdiff1d(ar1, ar2, assume_unique=False)  

Parameters

Following are the parameters of the Numpy setdiff1d() 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 from the first array that are not present in the second array.

Example

Following is a basic example of finding the set difference between two arrays using the Numpy setdiff1d() function −

import numpy as np  
array1 = np.array([10, 20, 30, 40, 50])  
array2 = np.array([30, 40, 70])  
result = np.setdiff1d(array1, array2)  
print("Set Difference:", result)  

Output

Following is the output of the above code −

Set Difference: [10 20 50]  

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, 40, 70])  
result = np.setdiff1d(array1, array2, assume_unique=True)  
print("Set Difference with assume_unique=True:", result)  

Output

Following is the output of the above code −

Set Difference with assume_unique=True: [10 50]  

Example: Working with Strings

The setdiff1d() function can also be used with string arrays. In the following example, we have found the elements unique to array1 when compared with array2

import numpy as np  
array1 = np.array(["apple", "banana", "cherry"])  
array2 = np.array(["banana", "grape"])  
result = np.setdiff1d(array1, array2)  
print("Set Difference:", result)  

Output

Following is the output of the above code −

Set Difference: ['apple' 'cherry']  

Example: Multi-dimensional Arrays

When using the setdiff1d() function with multi-dimensional arrays, the input arrays are first flattened before computing the set difference. The output remains a 1D array of unique elements −

import numpy as np  
array1 = np.array([[1, 2], [3, 4]])  
array2 = np.array([[3, 4], [5, 6]])  
result = np.setdiff1d(array1, array2)  
print("Set Difference:", result)  

Output

Following is the output of the above code −

Set Difference: [1 2]  
numpy_array_manipulation.htm
Advertisements