Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Numpy in1d() Function



The Numpy in1d() function tests whether each element of a 1D array is also present in a second array. It returns a Boolean array of the same shape as the input array, where each value indicates whether the corresponding element is found in the second array or not.

This function is particularly useful for performing membership checks or comparisons between arrays. It can handle arrays of any numeric or non-numeric data types, including strings and objects.

Syntax

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

numpy.in1d(ar1, ar2, assume_unique=False, invert=False)  

Parameters

Following are the parameters of the Numpy in1d() function −

  • ar1: The input array whose elements are to be checked.
  • ar2: The array against which membership is tested.
  • assume_unique (optional): If True, the input arrays are assumed to be unique, which can speed up the calculation. Default is False.
  • invert (optional): If True, the Boolean values in the output array are inverted (True becomes False, and vice versa). Default is False.

Return Type

This function returns a 1D Boolean array of the same shape as ar1, where each value indicates whether the corresponding element in ar1 is found in ar2.

Example

Following is a basic example of checking membership of elements in a 1D array using the Numpy in1d() function −

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

Output

Following is the output of the above code −

Boolean Array: [False False  True  True False]  

Example: Usage of invert Parameter

The invert parameter can be used to reverse the Boolean values in the output. If a value is True, it will be converted to False, and if a value is False, it will be converted to True.

In the following example, we have inverted the resultand array by setting invert parameter to True in numpy.in1d() function −

import numpy as np  
array1 = np.array([10, 20, 30, 40, 50])  
array2 = np.array([30, 40, 70])  
result = np.in1d(array1, array2, invert=True)  
print("Inverted Boolean Array:", result)  

Output

Following is the output of the above code −

Inverted Boolean Array: [ True  True False False  True]  

Example: With Non-Unique Arrays

When assume_unique is set to True, the calculation assumes that the input arrays contain unique elements. This can improve performance when the arrays are large and contain duplicates −

import numpy as np  
array1 = np.array([10, 20, 20, 40, 50])  
array2 = np.array([20, 40, 70])  
result = np.in1d(array1, array2, assume_unique=True)  
print("Boolean Array:", result)  

Output

Following is the output of the above code −

Boolean Array: [False  True  True  True False]  

Example: Checking Membership with Strings

The in1d() function can also be used with string arrays. In the following example, we have checked whether certain strings of array1 are present in array2 or not −

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

Output

Following is the output of the above code −

Boolean Array: [False  True False]  

Example: Multi-dimensional Arrays in 'in1d()'

The numpy.in1d() function is designed to work with flattened arrays. When applied to multi-dimensional arrays, the input array is first flattened, and then the function checks for the presence of elements in the specified values −

import numpy as np  
array1 = np.array([[1, 2], [3, 4]])  
array2 = np.array([2, 3])  
result = np.in1d(array1, array2)  
print("Boolean Array:", result)  

Output

Following is the output of the above code −

Boolean Array: [False  True  True False]  
numpy_array_manipulation.htm
Advertisements