如何使用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]))))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM