首页 > 解决方案 > Python如何在numpy数组中查找第一个重复项

问题描述

当我希望在数组中找到第一个重复项时遇到了问题。
例如:

array = [a, b, c, b, b, a, c, a]

returns: [True, True, True, False, False, False, False, False]  

我曾尝试使用 np.unique 函数,但它要么返回唯一值,要么返回唯一值的索引。
有没有能够做到这一点的功能?

标签: pythonpython-3.xnumpy

解决方案


你有一个很好的方法np.unique。与return_index您需要的信息一起返回。

我扩充了您的示例,以表明这通常与唯一值的位置无关。

array = np.array(['a', 'b', 'c', 'b', 'b', 'a', 'c', 'd', 'a'])

_, i = np.unique(array, return_index=True)
res = np.zeros_like(array, dtype=bool)
res[i] = True
print(res)

出去:

[ True  True  True False False False False  True False]

推荐阅读