python - 你如何在 numpy 数组中查找和保存重复的行?

标签 python numpy rows

我有一个数组,例如

Array = [[1,1,1],[2,2,2],[3,3,3],[4,4,4],[5,5,5],[1,1,1],[2,2,2]]

我想要输出以下内容的东西:

Repeated = [[1,1,1],[2,2,2]]

保留重复行的数量也可以,例如

Repeated = [[1,1,1],[1,1,1],[2,2,2],[2,2,2]]

我认为解决方案可能包括 numpy.unique,但我无法让它工作,是否有原生 python/numpy 函数?

最佳答案

使用 np.unique 的新 axis 功能连同 return_counts=True 为我们提供唯一的行和每一行的相应计数,我们可以用 counts > 1 屏蔽掉这些行,从而得到我们想要的输出, 像这样 -

In [688]: a = np.array([[1,1,1],[2,2,2],[3,3,3],[4,4,4],[5,5,5],[1,1,1],[2,2,2]])

In [689]: unq, count = np.unique(a, axis=0, return_counts=True)

In [690]: unq[count>1]
Out[690]: 
array([[1, 1, 1],
       [2, 2, 2]])

关于python - 你如何在 numpy 数组中查找和保存重复的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48099479/

相关文章:

python - 如何调整多 channel tiff 图像的大小?

python - python wx中打开子窗口时关闭父窗口

python - 如何在没有 Python 调用开销的情况下直接从 Cython 调用 numpy/scipy C 函数?

python - IF ELSE 使用 Numpy 和 Pandas

python - 是否可以进一步优化此数字运算算法?

pandas - 如何在数据框中创建新列并将它们全部分配为 0?

Python 查找包内的所有包,即使在鸡蛋中也是如此

python - 按 'Date' 分组,同时计算其他列的平均值

mysql - 在不同的列中显示一列的mysql结果

c# - 如何从 DataGridView 中删除选定的行?