NumPy 集合操作
什么是集合
数学中的集合是独特元素的集合。
集合用于涉及频繁的交集、并集和差集运算的运算。
在 NumPy 中创建集合
我们可以使用 NumPy 的 unique()
方法来从任何数组中找到唯一的元素。例如,创建一个集合数组,但请记住,集合数组应该只是一维数组。
实例
将以下包含重复元素的数组转换为集合:
import numpy as np arr = np.array([1, 1, 1, 2, 3, 4, 5, 5, 6, 7]) x = np.unique(arr) print(x)
求并集
要找到两个数组的唯一值,请使用 union1d()
方法。
实例
求以下两个集合数组的并集:
import numpy as np arr1 = np.array([1, 2, 3, 4]) arr2 = np.array([3, 4, 5, 6]) newarr = np.union1d(arr1, arr2) print(newarr)
求交集
要仅查找两个数组中都存在的值,请使用 intersect1d()
方法。
实例
求以下两个集合数组的交集:
import numpy as np arr1 = np.array([1, 2, 3, 4]) arr2 = np.array([3, 4, 5, 6]) newarr = np.intersect1d(arr1, arr2, assume_unique=True) print(newarr)
注意:intersect1d()
方法采用一个可选参数 assume_unique
,如果设置为 True
,则可以加速计算。处理集合时,应始终将其设置为 True
。
求差集
要仅找到第一个集合中不存在于第二个集合中的值,请使用 setdiff1d()
方法。
实例
求 set1 与 set2 的差集:
import numpy as np set1 = np.array([1, 2, 3, 4]) set2 = np.array([3, 4, 5, 6]) newarr = np.setdiff1d(set1, set2, assume_unique=True) print(newarr)
注意:setdiff1d()
方法采用可选参数 assume_unique
,如果将其设置为 True
,则可以加快计算。处理集合时应始终将其设置为 True
。
求对称差集
要仅查找两个集合中都不存在的值,请使用 setxor1d()
方法。
实例
求 set1 和 set2 的对称差集:
import numpy as np set1 = np.array([1, 2, 3, 4]) set2 = np.array([3, 4, 5, 6]) newarr = np.setxor1d(set1, set2, assume_unique=True) print(newarr)
注意:setxor1d()
方法采用可选参数 assume_unique
,如果将其设置为 True
,可以加快计算。处理集合时应始终将其设置为 True
。