如何使用python将二维数组去重呢?

二维数组的去重,能和一维的方法类似吗?
import numpy
c=np.array(((1,2),(3,4),(5,6),(7,8),(7,8),(3,4),(1,2)))
print('二维数组:\n',c)
print('去重后:',np.unique(c))
然而并不能达到预期,好伤心....
原因:unique()只是将二位数据转化为一维,然后再去重

下面来点干货!
#方案1:转化为虚数
x=c[:,0]+c[:,1]*1j
print('转化为虚数:',x)
print('虚数去重后:',np.unique(x))
print(np.unique(x,return_index=True))#return_index:输出的元素索引值
idx=np.unique(x,return_index=True)[1]
print('二维数组去重:\n',c[idx])
#方案2:利用set
print('去重方案2:\n',np.array(list(set([tuple(t) for t in c]))))
posted @ 2017-04-18 22:07  Michelle_Yang  阅读(15240)  评论(0编辑  收藏  举报