np.unique()對一維和二維數組去重


numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None)[source]

 

一維數組

對一維數組或列表,unique()函數去除其中重復元素,並按元素大小返回一個新的無重復元組或列表。

import numpy as np
A = [1, 2, 2, 5,3, 4, 3]
a = np.unique(A)
print(a)
[1 2 3 4 5]

C= ['fgfh','asd','fgfh','asdfds','wrh']
c= np.unique(C)
print(c)

 

return_index = True

# return_index=True表示返回新列表元素在舊列表中的位置,並以列表形式儲存在s中。
a, s= np.unique(A, return_index=True)
print(a)
print(s)
[1 2 3 4 5]
[0 1 4 5 3]

 

return_inverse = True

# return_inverse=True 表示返回舊列表元素在新列表中的位置,並以列表形式儲存在p中。
a, s,p = np.unique(A, return_index=True, return_inverse=True)
print(a)
print(s)
print(p)

 

二維數組

import numpy
c=np.array(((1,2),(3,4),(5,6),(7,8),(7,8),(3,4),(1,2)))
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])
轉化為虛數: [ 1.+2.j  3.+4.j  5.+6.j  7.+8.j  7.+8.j  3.+4.j  1.+2.j]
虛數去重后: [ 1.+2.j 3.+4.j 5.+6.j 7.+8.j]
(array([ 1.+2.j, 3.+4.j, 5.+6.j, 7.+8.j]), array([0, 1, 2, 3], dtype=int64))
二維數組去重: [[1 2] [3 4] [5 6] [7 8]]

 

print('去重方案2:\n',np.array(list(set([tuple(t) for t in c]))))
去重方案2:
 [[1 2]
 [3 4]
 [5 6]
 [7 8]]

 

來自:https://blog.csdn.net/yangyuwen_yang/article/details/79193770

https://www.cnblogs.com/Michelle-Yang/p/6730818.html

 


免責聲明!

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



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