二維數組的去重,能和一維的方法類似嗎?
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]))))