用python3进行《机器学习算法原理与编程实践》数据表的读取
用python3进行《机器学习算法原理与编程实践》数据表的读取
最近在看的一本书中,进行数据表文件的读取时遇到点问题,在进行网上搜集资料后终于解决了问题所在,特此分享希望能有所帮助。
博主的数据文件为CSV文件
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')
运行结果如下:
在进行运行过程中遇到的问题如下:
SyntaxError: EOL while scanning string literal
这是因为数据目录下有转义字符,所以数据目录可以改为E:/LaGou/ 或 E:\\LaGou\\
OSError: [WinError 123] 文件名、目录名或卷标语法不正确。
os.listdir(path) 方法中的path路径中的磁盘名需要自己写入,复制的磁盘名前面多个\u202a会导致识别不出
NameError: name ‘reload’ is not defined