for splitvalue in set(dataset[:, featureindex].tolist()):
首先set是一个无序,无重复的数据结构,所以很多时候使用它来进行去重;但是set接收的函数是原生array,这个怎么办?我现在有的numpy里面的matrix;于是我查了一下,直接使用matrix.tolist(),但是发现返回值有问题:
1
2
3
4
5
6
|
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中将会报错:
1
2
|
set (datamat[:, 0 ].tolist()) >>typeerror: unhashable type : 'list' |
于是查了一下,做了调整:
1
2
3
4
5
6
7
8
|
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中,完美。
1
|
set (datamat[:, 0 ].a.flatten().tolist()) |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/xiashiwendao/p/10507230.html