如何根据第一列从数组中删除重复的行.

sci*_*guy 0 python numpy

我有以下情况:

    >>> 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]])
Run Code Online (Sandbox Code Playgroud)

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

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

Mos*_*oye 6

这是一种方法,np.unique沿着第一列获取唯一项目的索引,然后沿着第一个轴使用索引切割数组:

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