如何比较numpy数组并查找删除两数组的共有元素
实现方案
首先导入numpy库,构造你的目标数组:
import numpy as np text = np.array(["one.csv", "two.csv", "three.csv"]) result = np.array(["one.csv", "two.csv", "three.csv", "four.csv", "five.csv"])
方法1:使用numpy内置差集函数np.setdiff1d
直接计算仅在result中出现、不在text中出现的元素:
- 不需要保留原有顺序的写法:
filtered_result = np.setdiff1d(result, text)
- 需要保留
result原有元素顺序(numpy 1.24及以上版本支持):
filtered_result = np.setdiff1d(result, text, keep_order=True)
方法2:全版本兼容保序写法
通过np.isin生成布尔掩码筛选元素,无版本依赖,默认保留原有顺序:
# 取反得到不在text中的元素的掩码 mask = ~np.isin(result, text) filtered_result = result[mask]
两种方法最终输出的filtered_result均为['four.csv' 'five.csv'],符合需求。
内容的提问来源于stack exchange,提问作者Don99
相关产品推荐
相关产品推荐

