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())