python两个数组如何取交集

python两个数组如何取交集

作者:Elara发布时间:2026-01-14阅读时长:0 分钟阅读次数:4

用户关注问题

Q
如何使用Python获取两个数组中的公共元素?

我有两个数组,想找出它们之间相同的元素,应该怎么操作?

A

使用set交集方法实现数组公共元素提取

Python中可以将数组转换为集合,然后使用集合的intersection()方法找到两个数组的交集。例如:

arr1 = [1, 2, 3, 4]
arr2 = [3, 4, 5, 6]
intersection = list(set(arr1).intersection(arr2))
print(intersection)  # 输出 [3, 4]

这种方法简洁高效,适用于不关心元素顺序和重复的情况。

Q
如何在Python中用列表解析找出两个数组的交集?

除了使用集合方法,还有什么办法可以找出两个数组共有的元素?

A

用列表推导式筛选交集元素

可以通过列表推导式,将一个数组中出现在另一个数组的元素筛选出来,代码示例如下:

arr1 = [1, 2, 3, 4]
arr2 = [3, 4, 5, 6]
intersection = [x for x in arr1 if x in arr2]
print(intersection)  # 输出 [3, 4]

这种方式适用于关心元素顺序且需要保留重复元素的场景。

Q
使用NumPy库如何计算两个数组的交集?

我在做科学计算,使用NumPy数组,想找出它们的公共元素,应该用什么函数?

A

利用NumPy的intersect1d函数获取交集

NumPy提供了intersect1d函数专门用来计算两个数组的交集。示例代码如下:

import numpy as np

arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([3, 4, 5, 6])
intersection = np.intersect1d(arr1, arr2)
print(intersection)  # 输出 [3 4]

该函数返回排序后的唯一交集元素,适合数值计算场景。