1、读取txt文件
下面的代码中需要设置你读取数据的数组的维度信息,如下
datamat = np.zeros((rows, 6)) #表示6列数据
# -*- coding: cp936 -*-
import re
import linecache
import numpy as np
import os
filename = 'preprocess1.txt'
# 数值文本文件转换为双列表形式[[...],[...],[...]],即动态二维数组
# 然后将双列表形式通过numpy转换为数组矩阵形式
# 数值文本文件直接转换为矩阵数组形式方法二
def txt_to_matrix(filename):
file = open(filename)
lines = file.readlines()
# print lines
# ['0.94\t0.81\t...0.62\t\n', ... ,'0.92\t0.86\t...0.62\t\n']形式
rows = len(lines) # 文件行数
datamat = np.zeros((rows, 6)) # 初始化矩阵
row = 0
for line in lines:
line = line.strip().split('\t') # strip()默认移除字符串首尾空格或换行符
print(line)
datamat[row, :] = line[:]
row += 1
return datamat
# 数值文本文件直接转换为矩阵数组形式方法三
def text_read(filename):
# Try to read a txt file and return a matrix.Return [] if there was a mistake.
try:
file = open(filename, 'r')
except IOError:
error = []
return error
content = file.readlines()
rows = len(content) # 文件行数
datamat = np.zeros((rows, 6)) # 初始化矩阵
row_count = 0
for i in range(rows):
content[i] = content[i].strip().split('\t')
datamat[row_count, :] = content[i][:]
row_count += 1
file.close()
return datamat
'''if __name__ == '__main__':
filename = 'winedata.txt'
# 二维列表
data = txt_to_matrix(filename)
print (data)
print(data.__len__())
#out = text_read('winedata.txt')
#print(out)'''
2、读取csv文件
在python中内置了csv库,通过调用相关函数即可实现文件的读取,将csv文件读取载入到数组可以采用python的pandas库中的read_csv()
函数来读取。具体实现如下:
import numpy as np
import pandas as pd
import os
df = pd.read_csv('preprocess.csv') #返回一个DataFrame的对象,这个是pandas的一个数据结构
df.columns=["Col1","Col2","Col3","Col4","Col5","Col6","Col7","Col8"]
X = df[["Col1","Col2","Col3","Col4","Col5","Col6","Col7"]] #抽取前七列作为训练数据的各属性值
X = np.array(X)
print X
y1 = df["Col8"] #最后一列作为每行对应的标签label
Y = np.array(y1)
print Y
3、mat文件读取
python的scipy中有专门的函数来方便.mat的文件的载入和存储,具体实现所示,
import scipy.io as sio
import numpy as np
###下面是讲解python怎么读取.mat文件以及怎么处理得到的结果###
load_fn = 'xxx.mat'
load_data = sio.loadmat(load_fn)
load_matrix = load_data['matrix'] #假设文件中存有字符变量是matrix,例如matlab中save(load_fn, 'matrix');当然可以保存多个save(load_fn, 'matrix_x', 'matrix_y', ...);
load_matrix_row = load_matrix[0] #取了当时matlab中matrix的第一行,python中数组行排列
###下面是讲解python怎么保存.mat文件供matlab程序使用###
save_fn = 'xxx.mat'
save_array = np.array([1,2,3,4])
sio.savemat(save_fn, {'array': save_array}) #和上面的一样,存在了array变量的第一行
save_array_x = np.array([1,2,3,4])
save_array_y = np.array([5,6,7,8])
sio.savemat(save_fn, {'array_x': save_array_x, 'array_x': save_array_x}) #同理,只是存入了两个不同的变量供使用