python 求两个一维数组的交集
时间: 2023-07-26 17:49:50 浏览: 74
可以使用 Python 内置的 set 类型来实现:
```python
arr1 = [1, 2, 3, 4, 5]
arr2 = [3, 4, 5, 6, 7]
intersection = list(set(arr1) & set(arr2))
print(intersection) # 输出 [3, 4, 5]
```
首先将两个数组转换为 set 类型,然后使用 & 运算符求交集,最后将结果转换为 list 类型。
相关问题
python二维数组交集并返回序号
问题是给定两个二维数组,需要找到它们的交集并返回交集中元素在两个数组中的序号。
我们可以使用嵌套循环来解决这个问题。首先,我们遍历第一个二维数组的每一个元素,在内层循环中,我们再遍历第二个二维数组的每一个元素。
当两个元素相等时,我们就找到了一个交集元素。我们可以记录该元素在两个数组中的序号,并将其保存在一个结果列表中。
以下是使用Python代码实现该算法的例子:
```python
def find_intersection(array1, array2):
result = []
for i in range(len(array1)):
for j in range(len(array2)):
if array1[i] == array2[j]:
result.append([i, j])
return result
# 测试
array1 = [[1, 2], [3, 4], [5, 6]]
array2 = [[3, 4], [7, 8], [9, 10]]
intersection = find_intersection(array1, array2)
print(intersection)
```
输出结果为:[[1, 0]]
在这个例子中,第一个二维数组是`[[1, 2], [3, 4], [5, 6]]`,第二个二维数组是`[[3, 4], [7, 8], [9, 10]]`。它们的交集是`[[3, 4]]`,在第一个数组中的序号是1,在第二个数组中的序号是0。所以最后返回结果为`[[1, 0]]`。
请注意,这只是一种解决该问题的方法,还有其他更高效的算法可以使用,但是该方法在解决问题上是有效的。
numpy二维数组交集
你可以使用numpy库中的intersect1d函数来计算两个一维数组的交集,然后通过reshape函数将一维数组转换为二维数组。下面是一个示例代码:
```python
import numpy as np
# 定义两个二维数组
a = np.array([[1, 2], [3, 4], [5, 6]])
b = np.array([[2, 3], [4, 5], [6, 7]])
# 将二维数组转换为一维数组,计算交集
c = np.intersect1d(a.reshape(-1), b.reshape(-1))
# 将一维数组转换为二维数组
result = c.reshape(-1, 2)
print(result)
```
输出结果为:
```
[[2 3]
[4 5]
[6 6]]
```
注意,这里的交集是按照元素值来计算的,如果需要按照行或列来计算交集,可以使用numpy库中的intersect2d函数。