遍历两个Numpy数组时如何获取共同匹配的元素值
实现方法
方法1:修改现有遍历逻辑
你原有代码只需要把print(True)换成打印匹配到的元素即可,示例代码:
for elem in an_array: if elem in another_array: print(elem)
这种写法逻辑简单,适合小规模数组使用。
方法2:使用Numpy内置函数(更推荐)
Numpy提供了原生的交集计算函数np.intersect1d,效率远高于手动遍历,尤其适合数据量较大的场景。注意你的another_array中同时存在字符串和整数类型,建议先统一转为字符串类型避免类型不匹配导致匹配失败,示例代码:
import numpy as np # 原数组定义 an_array=np.array(['1601-3003-2105','3200-0000-0001','3200-0000-0002','93043','K036095','K036096']) another_array=np.array(['3200-0000-0001','701450491A4CU',16]) # 统一转换为字符串类型 an_array_str = an_array.astype(str) another_array_str = another_array.astype(str) # 计算两个数组的交集 common_elements = np.intersect1d(an_array_str, another_array_str) print(common_elements)
运行后输出结果为:
['3200-0000-0001']
如果你的数组本身无重复元素,可添加assume_unique=True参数进一步提升运行效率:common_elements = np.intersect1d(an_array_str, another_array_str, assume_unique=True)
内容的提问来源于stack exchange,提问作者superunknown
相关产品推荐
相关产品推荐

