python的set處理二維數組轉一維數組


 for splitValue in set(dataset[:, featureIndex].tolist()): 

  首先set是一個無序,無重復的數據結構,所以很多時候使用它來進行去重;但是set接收的函數是原生array,這個怎么辦?我現在有的numpy里面的matrix;於是我查了一下,直接使用matrix.tolist(),但是發現返回值有問題:
1 import os
2 
3 os.chdir("D:\\galaxy\\aliyunsvn\\code\\MLInAction\\dataset")
4 dataArr = loadDataSet("ex00.txt")
5 dataMat = mat(dataArr)
6 dataMat[:, 0].tolist()
輸出為:
[[0.036098], [0.727098],..
並不是我想要的,因為如果此時將其放於set中將會報錯:
set(dataMat[:, 0].tolist())
>>TypeError: unhashable type: 'list'
於是查了一下,做了調整:
1 import os
2 
3 os.chdir("D:\\galaxy\\aliyunsvn\\code\\MLInAction\\dataset")
4 dataArr = loadDataSet("ex00.txt")
5 dataMat = mat(dataArr)
6 dataMat[:, 0].A.flatten().tolist()

>> [0.036098, 0.712386, ....
很好就是要這種一維的數組,然后再使用數組作為參數放入set中,完美。
set(dataMat[:, 0].A.flatten().tolist())

 

 

 

 


免責聲明!

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



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