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()
方法。
示例
查找集合 1 与集合 2 的差集
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()
方法。
示例
查找集合 1 和集合 2 的对称差集
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。