从文本解析数据并展示

2017-10-25  本文已影响0人  空山新雨后丶

txt文本:

40920 8.326976 0.953952 3
14488 7.153469 1.673904 2
26052 1.441871 0.805124 1
75136 13.147394 0.428964 1
38344 1.669788 0.134296 1
72993 10.141740 1.032955 1
35948 6.830792 1.213192 3
42666 13.276369 0.543880 3
67497 8.631577 0.749278 1

其中一行四个数据,把前三个放到二维数组中,最后一列放入一个一维数组,分别代表着特征和标签。

>>> fr = open('E:\machinelearninginaction\Ch02\datingTestSet2.txt')
>>> fr
<_io.TextIOWrapper name='E:\\machinelearninginaction\\Ch02\\datingTestSet2.txt' mode='r' encoding='cp936'>
>>> arrayOfLines = fr.readlines()
>>> numberOfLine = len(arrayOfLines)
>>> numberOfLine
1000
>>> arrayOfLines[0]
'40920\t8.326976\t0.953952\t3\n'
>>> arrayOfLines[0:5]
['40920\t8.326976\t0.953952\t3\n', '14488\t7.153469\t1.673904\t2\n', '26052\t1.441871\t0.805124\t1\n', '75136\t13.147394\t0.428964\t1\n', '38344\t1.669788\t0.134296\t1\n']

>>> line = arrayOfLines[0]
>>> line
'40920\t8.326976\t0.953952\t3\n'
>>> line = line.strip()
>>> line
'40920\t8.326976\t0.953952\t3'

>>> listFromLine = line.split('\t')
>>> listFromLine
['40920', '8.326976', '0.953952', '3']
>>> returnMat[0, :] = listFromLine[0:3]
>>> returnMat
array([[  4.09200000e+04,   8.32697600e+00,   9.53952000e-01],
       [  0.00000000e+00,   0.00000000e+00,   0.00000000e+00],
       [  0.00000000e+00,   0.00000000e+00,   0.00000000e+00],
       ..., 
       [  0.00000000e+00,   0.00000000e+00,   0.00000000e+00],
       [  0.00000000e+00,   0.00000000e+00,   0.00000000e+00],
       [  0.00000000e+00,   0.00000000e+00,   0.00000000e+00]])

>>> classLabelVctor = []
>>> classLabelVctor.append(listFromLine[-1])
>>> classLabelVctor
['3']
>>> classLabelVctor.append(int(listFromLine[-1]))
>>> classLabelVctor
['3', 3]

open 加上文件路径,获取文件路径有个简单的方法,按住shift右键文件有个 复制路径。


image.png

readlines方法,读取所有行,放到一个一维列表中,每个单位存放一行的内容。

len方法获取该列表的大小,这里txt一共有1000行。

接下来是对每一行的处理:
strip函数作用:溢出字符串首尾指定字符,没有给出的话就默认为空格,回车。

split函数是按指定字符切割,这里把字符串切割为4个成员放入列表中。

numpy.zeros函数是产生指定大小的0矩阵,这里产生1000×3大小的二维矩阵,类型为float。
returnMat[0, :] = listFromLine[0:3] 是把0-2的内容复制到第0行所有位置上。

列表 -1序号代表为最后一行。

上一篇下一篇

猜你喜欢

热点阅读