找到两个array的交集,用python写
时间: 2023-08-21 07:07:57 浏览: 43
你可以使用 Python 的 `numpy` 库中的 `intersect1d()` 函数来查找两个数组的交集。
以下是一个示例代码:
```python
import numpy as np
def get_intersection(a, b):
intersection = np.intersect1d(a, b)
return intersection.tolist()
```
这个函数接受两个数组 `a` 和 `b` 作为输入,返回它们的交集。如果交集非空,则返回一个包含交集元素的列表;否则返回一个空列表。
你可以使用以下代码测试这个函数:
```python
a = np.array([1, 2, 3, 4, 5])
b = np.array([3, 4, 5, 6, 7])
c = np.array([8, 9, 10])
print(get_intersection(a, b)) # [3, 4, 5]
print(get_intersection(a, c)) # []
```
输出结果为:
```
[3, 4, 5]
[]
```
需要注意的是,使用 `numpy` 库需要先安装并导入库。如果你只需要找到两个列表的交集而不需要其他 `numpy` 库中的函数,可以使用前面提到的 Python 内置函数来实现。
相关问题
怎么用python求视频中两个颜色的交集
你可以使用 OpenCV 库来处理视频并提取颜色。首先,你需要确定两个颜色空间和阈值。然后,你可以使用 cv2.inRange() 函数来获取两个颜色的掩码,并使用 cv2.bitwise_and() 函数来获取它们的交集。下面是一个示例代码:
```python
import cv2
import numpy as np
# 读取视频
cap = cv2.VideoCapture('video.mp4')
# 确定两个颜色空间和阈值
lower_red = np.array([0, 50, 50])
upper_red = np.array([10, 255, 255])
lower_blue = np.array([110, 50, 50])
upper_blue = np.array([130, 255, 255])
while(cap.isOpened()):
# 逐帧读取视频
ret, frame = cap.read()
if ret == True:
# 转换颜色空间
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
# 获取两个颜色的掩码
mask_red = cv2.inRange(hsv, lower_red, upper_red)
mask_blue = cv2.inRange(hsv, lower_blue, upper_blue)
# 获取两个颜色的交集
mask_intersect = cv2.bitwise_and(mask_red, mask_blue)
# 显示图像
cv2.imshow('frame', frame)
cv2.imshow('red_mask', mask_red)
cv2.imshow('blue_mask', mask_blue)
cv2.imshow('intersect_mask', mask_intersect)
# 按下 q 键退出
if cv2.waitKey(25) & 0xFF == ord('q'):
break
else:
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
在这个示例中,我们从视频中提取了两个颜色:红色和蓝色。首先,我们将每个帧转换为 HSV 颜色空间,然后使用 cv2.inRange() 函数获取每个颜色的掩码。接下来,我们使用 cv2.bitwise_and() 函数来获取两个掩码的交集。最后,我们使用 cv2.imshow() 函数显示每个掩码和原始帧。按下 q 键退出循环并释放资源。
求两个np数组的交集,可以使用什么python函数
可以使用numpy中的intersect1d函数来求两个numpy数组的交集。
intersect1d函数的语法如下:
```python
numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)
```
其中,ar1和ar2分别为需要求交集的两个numpy数组,assume_unique表示是否假设输入的数组已经去重,return_indices表示是否返回交集元素在原数组中的下标。
示例代码:
```python
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([3, 4, 5, 6, 7])
intersect = np.intersect1d(a, b)
print(intersect) # 输出结果为 [3 4 5]
```
在该示例中,我们定义了两个numpy数组a和b,然后使用intersect1d函数求它们的交集,得到了[3, 4, 5]作为结果。