numpy.isin 函数用于测试一个数组中的元素是否包含在另一个数组中。它返回一个布尔型数组,表示对应元素是否存在于指定的值列表中。numpy.isin 是一个非常有用的函数,可以方便地检查一个数组中的哪些元素存在于另一个数组中。通过 assume_unique 参数可以优化性能,而 invert 参数则可以用于查找不存在的元素。这个函数在数据过滤、条件选择等场景中非常常见。本文主要介绍一下NumPy中isin方法的使用。

numpy.isin

numpy.isin(element, test_elements, assume_unique=False, invert=False)     [source]

计算test_elements中的元素,仅在element上传递。 返回与元素具有相同形状的布尔数组,如果元素的元素在test_elements中,则返回True,否则返回False。

参数 :

element :array_like

输入数组。

test_elements :array_like

用于测试每个元素值的值。 

如果它是array或array_like,则将其展平。 

有关非类数组参数的行为,请参见注释。

assume_uniquebool, 可选

如果为True,则假定输入数组都是唯一的,

这可以加快计算速度。 默认值为False。

invert :bool, 可选

如果为True,则返回数组中的值将被反转,

就像计算元素不在test_elements中一样。 

默认值为Falsenp.isin(a,b,invert = True)

等效于(但比更快)np.invert(np.isin(a,b))

返回值 :

isin :ndarray, bool

具有与元素相同的形状。

 值element [isin]在test_elements中。

Notes

isin是python关键字in的元素明智函数版本。isin(a, b)大致相当于np.array([item in b for item in a])如果a和b是1-D序列。

如果元素和test_elements还没有被转换为数组,那么它们将被转换为数组。如果test_elements是一个集合(或其他非序列集合),那么它将被转换为一个只有一个元素的对象数组,而不是test_elements中包含的值数组。这是数组构造函数处理非序列集合方式的结果。将集合转换为列表通常会得到所需的行为。

新版本1.13.0。

例子

1)基本用法 (测试元素是否存在):

import numpy as np

array1 = np.array([1, 2, 3, 4, 5])
array2 = np.array([3, 6])

is_in = np.isin(array1, array2)
print(f"元素数组: {array1}")
print(f"测试数组: {array2}")
print(f"是否存在于测试数组中: {is_in}")

2)element 是多维数组

import numpy as np

array3 = np.array([[1, 2], [3, 4]])
array4 = np.array([2, 3])

is_in_multi = np.isin(array3, array4)
print(f"元素数组 (多维): \n{array3}")
print(f"测试数组: {array4}")
print(f"是否存在于测试数组中: \n{is_in_multi}")

3)使用 assume_unique=True (假设输入元素唯一)

import numpy as np

array5 = np.array([1, 2, 3, 4, 5])
array6 = np.array([3, 6])

is_in_unique = np.isin(array5, array6, assume_unique=True)
print(f"元素数组: {array5}")
print(f"测试数组: {array6}")
print(f"是否存在于测试数组中 (假设唯一): {is_in_unique}")

4)使用 invert=True (测试元素是否不存在)

import numpy as np

array7 = np.array([1, 2, 3, 4, 5])
array8 = np.array([3, 6])

is_not_in = np.isin(array7, array8, invert=True)
print(f"元素数组: {array7}")
print(f"测试数组: {array8}")
print(f"是否不存在于测试数组中: {is_not_in}")

推荐文档

相关文档

大家感兴趣的内容

随机列表