首页 > 解决方案 > 如果第一列有重复,则删除整行 np 数组

问题描述

我有以下测试数组:

arr = np.array([[1, 2, 3], [1,3,7], [2,1,3], [4, 5, 6], [1,4,7], [2,7,6])

我需要删除第一列中具有重复值的每一行(但仍保留该值的第一个实例)。对于这个测试数组,我需要以下输出:

result=[1,2,3],[2,1,3],[4,5,6]

因此,保留第一列中 1 的第一行,保留列中 2 的第一行,依此类推...

任何帮助,将不胜感激!

标签: pythonarraysnumpy

解决方案


return_indexinnp.unique对此非常有用:

_, i = np.unique(arr[:,0], return_index=True)

arr[i]
array([[1, 2, 3],
       [2, 1, 3],
       [4, 5, 6]])

推荐阅读