【问题标题】:How to remove duplicate rows from an array based on first column. [duplicate]如何根据第一列从数组中删除重复行。 [复制]
【发布时间】:2016-11-11 18:45:23
【问题描述】:

我有以下情况:

    >>> a # I have
    array([[0, 1],
           [0, 2],
           [0, 2],
           [1, 3],
           [1, 3],
           [2, 1]])
    >>> new_a # I want to get to
    array([[0, 1],
           [1, 3],
           [2, 1]])

如果第一列中有重复条目,则基本上是关于如何删除整行的纯 numpy 解决方案。例如:第一行是 [0, 1],第二行是 [0,2] - 由于 0(第一列)是重复的,我想保留第一个实例并删除任何其他实例。

我确信我可以设置一些 If 语句和 while 循环——但我想知道是否有更优雅的解决方案。谢谢!

【问题讨论】:

标签: python numpy


【解决方案1】:

这是使用np.unique 的一种方法,沿第一列获取唯一项的索引,然后使用索引沿第一轴对数组进行切片:

_, indices = np.unique(arr[:, 0], return_index=True)
print(arr[indices, :])
# [[0 1]
#  [1 3]
#  [2 1]]

【讨论】:

    猜你喜欢
    • 2022-06-27
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多