牛骨文教育服务平台(让学习变的简单)
博文笔记

【Python】读写矩阵、矩阵转向量代码

创建时间:2017-08-05 投稿人: 浏览次数:1788

一、基础知识:
open(fileName,model="r"):打开文件
model参数:
"r":读(默认)                                 "rb":二进制读               "rb+":二进制读写
"w":写(会覆盖原有文件)              "wb":二进制写              "wb+":二进制读写
"a":追加(从EOF开始)                  "ab":二进制追加           "ab+":二进制追加读写
"r+":读写(不会创建不存在的文件,从顶部开始读/写,覆盖之前内容)
"w+":读写(会创建不存在的文件,从顶部开始读/写,覆盖之前内容)
"a+":追加读写(会创建不存在的文件,从顶部开始读,从底部开始写,不覆盖之前内容) >>>f = open("test.txt") .read():读取文件的全部内容,返回一个字符串 >>>f.read()
"1 2 3 4"
.readlines():读取文件的全部内容,返回一个列表,列表中的元素为各行的字符串(包括换行符 )
>>>f.readlines()
["1 2 ", "3 4"] .close():关闭文件
>>>f.close()
map(func,*iterables):将可迭代对象中的元素分别作为参数传递到函数func中,返回一个列表
for line in fr.readlines():
 strLine = line.strip().split(" ")
 numLine = map(float,strLine)


二、读入文件中的矩阵数据
1.readMat(fileName) 输入:文件名
作用:读入文件中的矩阵(空格和换行符分隔)
输出:二维列表(datatype:int)

def readMat(fileName):
    fr = open(fileName)
    dataMat = []
    for line in fr.readlines():
        strLineList = line.strip().split(" ")
        numLineList = [int(j) for j in strLineList]
        dataMat.append(numLineList)
    return dataMat


2.loadDataSet

输入:文件名

作用:读入文件中的矩阵(制表符和换行符分隔)
输出:二维列表(datatype_float)
def loadDataSet(fileName):      #general function to parse tab -delimited floats
    dataMat = []                #assume last column is target value
    fr = open(fileName)
    for line in fr.readlines():
        curLine = line.strip().split(" ")
        fltLine = map(float,curLine) #map all elements to float()
        dataMat.append(fltLine)   
 return dataMat
三、读入文件中的矩阵数据转换为向量
mat2vec(fileName)
输入:文件名
作用:将文件中的矩阵转(空格和换行符分隔)换为向量读入
输出:一维列表
def mat2vec(fileName):
    fr = open(fileName)
    vec = [int(j) for j in fr.read().strip().replace(" "," ").split(" ")]
    fr.close()
    return vec
四、将二维列表写入txt文件

使用pandas包中的to_csv方法
import pandas as pd df = pd.DataFrame(data)
df.to_csv(fileName,header= False, index = False,sep = " ")


五、读取mat文件中的数据


使用scipy.io中的loadmat函数


import scipy.io 

data = scipy.io.loadmat(fileName) # data是一个字典

data.keys() # 用keys方法查看字典的键


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。