【发布时间】:2016-10-06 15:36:49
【问题描述】:
我有一个二维数组,它有一些重复的列。我希望能够查看有哪些独特的列,以及重复的列在哪里。
我自己的数组太大放在这里,但这里是一个例子:
a = np.array([[ 1., 0., 0., 0., 0.],[ 2., 0., 4., 3., 0.],])
这具有唯一的列向量 [1.,2.]、[0.,0.]、[0.,4.] 和 [0.,3.]。有一个重复:[0.,0.] 出现两次。
现在我找到了一种获取唯一向量及其索引here 的方法,但我不清楚如何获得重复项的出现。我尝试了几种幼稚的方法(使用np.where 和列表组合),但这些方法都非常非常慢。肯定有一种 numpythonic 的方式吗?
在 matlab 中,它只是 unique 函数,但 np.unique 使数组变平。
【问题讨论】:
-
@WarrenWeckesser 我链接了它,因为它解决了查找唯一行的问题,但它没有解决查找数组中重复项所在位置的问题
-
您打算用重复的 ID 标记重复的列吗?还是您打算计算重复列的数量?
-
我希望能够说出类似
{col1: [0], col2: [1, 4], col3: [2], col4: [3]}的话,即列出每个唯一列出现在数组中的位置。
标签: python arrays numpy unique