for splitValue in set(dataset[:, featureIndex].tolist()):
首先set是一个无序,无重复的数据结构,所以很多时候使用它来进行去重;但是set接收的函数是原生array,这个怎么办?我现在有的numpy里面的matrix;于是我查了一下,直接使用matrix.tolist(),但是发现返回值有问题:
import os
os.chdir("D:\\galaxy\\aliyunsvn\\code\\MLInAction\\dataset")
dataArr = loadDataSet("ex00.txt")
dataMat = mat(dataArr)
dataMat[:, 0].tolist()
输出为:
[[0.036098], [0.727098],..
并不是我想要的,因为如果此时将其放于set中将会报错:
set(dataMat[:, 0].tolist())
>>TypeError: unhashable type: 'list'
于是查了一下,做了调整:
import os
os.chdir("D:\\galaxy\\aliyunsvn\\code\\MLInAction\\dataset")
dataArr = loadDataSet("ex00.txt")
dataMat = mat(dataArr)
dataMat[:, 0].A.flatten().tolist()
>> [0.036098, 0.712386, ....
很好就是要这种一维的数组,然后再使用数组作为参数放入set中,完美。
set(dataMat[:, 0].A.flatten().tolist())
您可能感兴趣的文章:python 按照固定长度分割字符串的方法小结python多维数组切片方法python中字符串变二维数组的实例讲解详解Python二维数组与三维数组切片的方法Python numpy实现二维数组和一维数组拼接的方法Python3实现将一维数组按标准长度分隔为二维数组