Numpy intersect1d() Function



The Numpy intersect1d() function finds the intersection of two arrays. It return's a sorted array of unique elements that are present in both input arrays. This function is useful for identifying common elements between arrays, whether they contain numeric or non-numeric data types such as strings or objects.

The Numpy intersect1d() function can also be used to identify the indices of common elements in both input arrays by setting the return_indices parameter to True.

Syntax

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

numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)  

Parameters

Following are the parameters of the Numpy intersect1d() 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_indices (optional): If True, the indices of the shared elements in the original arrays are returned as additional outputs. Default is False.

Return Type

This function returns a sorted 1D array containing unique elements present in both input arrays.

Example

Following is a basic example of finding the intersection of two arrays using the Numpy intersect1d() function −

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

Output

Following is the output of the above code −

Intersection: [30 40]  

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, 30, 40])  
array2 = np.array([30, 40, 50, 60])  
result = np.intersect1d(array1, array2, assume_unique=True)  
print("Intersection with assume_unique=True:", result)  

Output

Following is the output of the above code −

Intersection with assume_unique=True: [30 40]  

Example: Using return_indices Parameter

The return_indices parameter returns the indices of the intersecting elements in the original arrays. This is useful for locating the positions of the common elements −

import numpy as np  
array1 = np.array([10, 20, 30, 40, 50])  
array2 = np.array([30, 40, 70])  
result, idx1, idx2 = np.intersect1d(array1, array2, return_indices=True)  
print("Intersection:", result)  
print("Indices in array1:", idx1)  
print("Indices in array2:", idx2)  

Output

Following is the output of the above code −

Intersection: [30 40]  
Indices in array1: [2 3]  
Indices in array2: [0 1]  

Example: Passing Strings as an Arguments

The intersect1d() function can also be applied to string arrays. In the following example, we have found the common strings between the array1 and array2

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

Output

Following is the output of the above code −

Intersection: ['banana' 'cherry']  

Example: Multi-dimensional Arrays

When using the intersect1d() function with multi-dimensional arrays, the input arrays are first flattened before finding the intersection. The output remains a 1D array of unique elements present in both input arrays −

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

Output

Following is the output of the above code −

Intersection: [3 4]  
numpy_array_manipulation.htm
Advertisements