我有信息存储在结构数组中,dtype为time,x,y,x和cnt。
time x y z cnt
41641 1428 0 3 2554
42152 1428 0 3 2554
42602 1428 0 3 2554
43627 1428 1 3 2554
44075 1428 0 3 2555
44552 1428 1 3 2555
44901 1428 1 3 2556
45377 1428 0 3 2557
45889 1428 0 3 2557
46519 1428 0 3 2557
47680 1428 1 3 2557
48056 1428 0 3 2558
48416 1428 0 3 2558
49270 1428 1 3 2558
我想从每个重复的cnt参数中提取第一行:
41641 1428 0 3 2554
44075 1428 0 3 2555
44901 1428 1 3 2556
45377 1428 0 3 2557
48056 1428 0 3 2558
答案 0 :(得分:1)
numpy.unique
的 return_index=True
会为您提供一份索引列表。尝试类似这样(非常不合适)的尝试。
cnt = structArray['cnt']
uniq = numpy.unique(cnt, return_index=True)
result = structArray[uniq]
当然你可以把它折成一个单行。
答案 1 :(得分:1)
您可以使用numpy.unique
如果您的数据数组被调用data
:
print data[np.unique(data[:,4],return_index=True)[1]]
#[[41641 1428 0 3 2554]
# [44075 1428 0 3 2555]
# [44901 1428 1 3 2556]
# [45377 1428 0 3 2557]
# [48056 1428 0 3 2558]]