我有以下情况:
>>> 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循环 - 但我想知道是否有更优雅的解决方案。谢谢!
答案 0 :(得分:6)
这是使用np.unique
执行此操作的一种方法,沿第一列获取唯一项目的索引,然后沿着第一个轴使用索引切割数组:
_, indices = np.unique(arr[:, 0], return_index=True)
print(arr[indices, :])
# [[0 1]
# [1 3]
# [2 1]]