如何使用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]))))
相關文章
相關標籤/搜索