示例数据集:UCI的电离层(Ionosphere)
要实现的数据集的读取功能:
该数据集共有351行,每行有35个值,前34个为我们要的数据集,最后一个值是’g’或者’b’,表示数据的好坏,我们的任务就是在这个文本数据的前34列分出来,得到我们要的数据data_set(数组类型,元素为float),最后一列分出来,作为我们的标签data_label(布尔数组类型)
实现这个功能有以下几种方法
方法一: open函数
代码如下:
data_file='ionosphere.data'
data_set=np.zeros((351,34),dtype='float')
data_label=np.zeros((351,),dtype='bool')
fr=open(data_file)
array_of_line=fr.readlines()#得到文本的数据数组
number_of_line=len(array_of_line)#得到文本行数
for line in array_of_line:
list_from_line=line.split(',')
datastr=list_from_line[:-1]#这里得到的是字符串类型,而非浮点型
data=float(datastr)#转化为浮点型
fr.close()#关闭文档
这个方法要注意的是:
(1)文件的打开和关闭需要我们处理,比较麻烦
(2)从文本中直接读到的序列是字符串,而非浮点型(虽然文本表面上看起来是浮点型)ÿ