NumPy 集合运算


什么是集合

数学中的集合是独特元素的集合。

集合用于涉及频繁交集、并集和差集运算的运算。


在 NumPy 中创建集合

我们可以使用 NumPyunique()方法从任何数组中查找唯一元素。例如,创建一个集合数组,但请记住集合数组只能是一维数组。

示例

将以下包含重复元素的数组转换为集合:

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。