Python-按行的一部分删除行重复

Python-按行的一部分删除行重复,python,pandas,numpy,Python,Pandas,Numpy,假设我有以下数组: import numpy as np data = np.array([[51001, 121, 1, 121212], [51001, 121, 1, 125451], [51001, 125, 1, 127653]] 我只想删除行中前3个元素(前3列)的重复行 因此,我将得到的结果是: print data [[51001, 121, 1, 121212], [51001, 125, 1, 1276

假设我有以下数组:

import numpy as np

data = np.array([[51001, 121, 1, 121212],
                 [51001, 121, 1, 125451],
                 [51001, 125, 1, 127653]]
我只想删除行中前3个元素(前3列)的重复行

因此,我将得到的结果是:

print data
[[51001, 121, 1, 121212],
 [51001, 125, 1, 127653]]

保留哪一行和删除哪一行都无所谓,只要我在前3列中得到唯一的数据

这里有一种方法,在熊猫中使用
删除重复项

In [179]: pd.DataFrame(data).drop_duplicates([0, 1, 2]).values
Out[179]:
array([[ 51001,    121,      1, 121212],
       [ 51001,    125,      1, 127653]])

这里有一种在熊猫中使用
删除重复项的方法

In [179]: pd.DataFrame(data).drop_duplicates([0, 1, 2]).values
Out[179]:
array([[ 51001,    121,      1, 121212],
       [ 51001,    125,      1, 127653]])

切分前三列并使用链接的dup Q&A。我可以切分,但我不知道如何维护第四列,我没有看到任何关于如何执行的答案。编辑:
sorted\u idx=np.lexsort(data[:,:3].T)
row\u mask=np.append([True],np.any(np.diff(sorted\u data[:,:3],axis=0),1))
。切分前三列并使用链接的dup Q&A。我可以切分,但我不知道如何维护第四列,而且我没有看到任何关于如何执行的答案。编辑:
sorted\u idx=np.lexsort(data[:,:3].T)
row\u mask=np.append([True],np.any(np.diff(sorted\u data[:,:3],axis=0))