美文网首页
从文本解析数据并展示

从文本解析数据并展示

作者: 空山新雨后丶 | 来源:发表于2017-10-25 19:31 被阅读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序号代表为最后一行。

    相关文章

      网友评论

          本文标题:从文本解析数据并展示

          本文链接:https://www.haomeiwen.com/subject/dzkcpxtx.html