📅  最后修改于: 2023-12-03 15:19:14.638000             🧑  作者: Mango
numpy.isin()
方法用于检查两个数组中的元素是否相同,并返回一个布尔值数组,该数组指示第一个数组中的元素是否包含在第二个数组中。
numpy.isin(element, test_elements, assume_unique=False, invert=False)
test_elements
中。element
中。返回一个与element
数组的形状相同的布尔数组。返回的数组将是element
数组的副本。
import numpy as np
in_arr1 = [ 1, 2, 3, 4, 5, 6, 7, 8 ]
in_arr2 = [ 2, 4, 6 ]
print ("Input array1 : ", in_arr1)
print ("Input array2 : ", in_arr2)
out_arr = np.isin(in_arr1, in_arr2)
print ("Output array : ", out_arr)
输出:
Input array1 : [1, 2, 3, 4, 5, 6, 7, 8]
Input array2 : [2, 4, 6]
Output array : [False True False True False True False False]
本例子中,通过numpy.isin()
方法检查in_arr1
数组中的每个元素是否存在于in_arr2
数组中,返回布尔数组out_arr
表示是否在in_arr2
中发现了相应的元素。
在下例中,assume_unique
参数被设置为True
,说明输入数组都已经唯一排列好了,可以看到性能有了提升:
import numpy as np
in_arr1 = [ 1, 2, 3, 4, 5, 6, 7, 8 ]
in_arr2 = [ 2, 4, 6 ]
# Output with 'assume_unique=False'
out_arr = np.isin(in_arr1, in_arr2)
print ("Output array : ", out_arr)
# Output with 'assume_unique=True'
out_arr = np.isin(in_arr1, in_arr2, assume_unique=True)
print ("Output array : ", out_arr)
输出:
Output array : [False True False True False True False False]
Output array : [False True False True False True False False]
在下例中,invert
参数被设置为True
,可以看到输出结果和上例相反:
import numpy as np
in_arr1 = [ 1, 2, 3, 4, 5, 6, 7, 8 ]
in_arr2 = [ 2, 4, 6 ]
# Output with 'invert=False'
out_arr = np.isin(in_arr1, in_arr2)
print ("Output array : ", out_arr)
# Output with 'invert=True'
out_arr = np.isin(in_arr1, in_arr2, invert=True)
print ("Output array : ", out_arr)
输出:
Output array : [False True False True False True False False]
Output array : [ True False True False True False True True]
numpy.isin()
方法是一种非常有效的检查两个数组是否存在相同元素的方式。它可以非常方便地用于基础Python和数据分析中。