用python3进行《机器学习算法原理与编程实践》数据表的读取

用python3进行《机器学习算法原理与编程实践》数据表的读取

最近在看的一本书中,进行数据表文件的读取时遇到点问题,在进行网上搜集资料后终于解决了问题所在,特此分享希望能有所帮助。

博主的数据文件为CSV文件

用python3进行《机器学习算法原理与编程实践》数据表的读取

python3读取数据表:

import sys,os
import importlib
from numpy import *
importlib.reload(sys) #配置UTF-8输出坏境
#数据文件转化矩阵 path:数据文件路径  delimiter:行内字段分隔符
def filematrix(path,delimiter):
    recordlist = []
    with open(path,'r')as fp:
        content = fp.read()
    rowlist = content.splitlines() #按行转换为一维表
    rowlist = rowlist[-3:]  #列出后3行
    #逐行遍历,结果按分隔符分隔为行向量
    #recordlist = [row.split(delimiter) for row in rowlist if row.strip()]
    for row in rowlist:
        if row.strip():
            recordlist.append(row.split(delimiter))
    print(recordlist,'\n')
    return mat(recordlist) #转换为矩阵形式
root = "E:/LaGou/"  #数据文件所在目录
pathlist = os.listdir(root)
for path in pathlist:
    print(root+path)
    recordmat = filematrix(root+path,",")  #文件到矩阵的转换
    print(recordmat,type(recordmat),shape(recordmat),sep='\n')

运行结果如下:

用python3进行《机器学习算法原理与编程实践》数据表的读取

在进行运行过程中遇到的问题如下:

SyntaxError: EOL while scanning string literal

这是因为数据目录下有转义字符,所以数据目录可以改为E:/LaGou/ 或 E:\\LaGou\\

OSError: [WinError 123] 文件名、目录名或卷标语法不正确。

os.listdir(path) 方法中的path路径中的磁盘名需要自己写入,复制的磁盘名前面多个\u202a会导致识别不出

NameError: name ‘reload’ is not defined

这是因为reload被python3加入importlib模块中,引用时需要导入importlib模块import importlib importlib.reload(sys) 另外python3的默认编码就时UTF-8

以上为博主遇到的问题和本人观点,博主为在校大学生,也是python新手,如有错误请在评论区提出,可以相互讨论学习。

不喜勿喯,谢谢!