【发布时间】:2016-12-22 07:52:56
【问题描述】:
假设我有以下数组:
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 列的唯一性,我们保留哪一行和删除哪一行都没有关系
【问题讨论】:
-
将前三列切片并使用链接的 dup Q&As。
-
我可以切片,但我不知道如何维护第 4 列,也没有看到任何关于如何操作的答案
-
从此
answer post,编辑:sorted_idx = np.lexsort(data[:,:3].T)和row_mask = np.append([True],np.any(np.diff(sorted_data[:,:3],axis=0),1))。