【发布时间】:2017-12-08 09:56:00
【问题描述】:
我有一个 numpy 数组/pandas 数据框
[[0 0 0 1],
[1 0 0 1],
[0 0 0 1],
[1 0 0 1],
[0 0 0 1],
[0 0 1 0],
[0 0 1 0]]
我需要此数组的行重复索引数。结果应该类似于 (0,2,4), (1,3), (5,6)。
到目前为止,我有一个解决方法,就像我正在运行循环一样,其中一个数组行的唯一值与实际数组行相对。这给了我结果,但不是我想要的那样。 这是我编写的代码,它给了我配对,但对于一个大数组,这非常混乱。
for i, row in enumerate(array):
for j, row1 in enumerate(unique(array)):
if tuple(row)==tuple(row1):
pair.append(tuple([j,i]))
我的结果如下所示:
[(0, 276),(1, 2931),(2, 3891),(3, 2165),(4, 1822),(5, 1241),
(5, 2635),(5, 2644),(5, 2862),(5, 3296)]
我的数组非常大,所以我手动选择基于第一个值的元组作为重复的指标,然后我选择实际的行号是重复的。例如。 - 第一个值为 5 的元组平均第 1241 行在 2635、2644、2862 和 3296 处重复。
谁能建议我解决这个问题的更好方法。 我在这里环顾四周,但没有得到任何具体的东西。
【问题讨论】:
标签: python-2.7 pandas numpy indexing