1. 利用TXT进行矩阵存储,并根据需要时再读出
# 把矩阵save_weights存储到Save_weights.txt文件中去
savetxt('Save_weights.txt',save_weights,fmt="%.2f",delimiter=',') # 进行存储保存为两位小数,数据以","为间隔
# 从Save_weights.txt文件中读出矩阵
dataArr = np.loadtxt('Save_weights2.txt', delimiter=',')
2. 读取TXT文件
import operator
import numpy as np
fr = open("datingTestSet.txt")
print(fr) # <_io.TextIOWrapper name='datingTestSet.txt' mode='r' encoding='cp936'>
arrayline = fr.readlines()
print(arrayline) # ['40920\t8.326976\t0.953952\tlargeDoses\n', '14488\t7.153469\t1.673904\tsmallDoses\n',..]
lines = len(arrayline)
returnMat = np.zeros((lines, 3))
index = 0
for line in arrayline:
lines = line.strip() # X.strip() 移除 字符串 头尾指定的字符 (默认空格或换行符)或字符序列
print('lines',lines) # lines 40920 8.326976 0.953952 largeDoses
ListFromList = lines.split('\t') # 通过指定字符对字符串进行分割
print('L',ListFromList) # L ['40920', '8.326976', '0.953952', 'largeDoses']
print(ListFromList[0:3]) # ['40920', '8.326976', '0.953952']
returnMat[index, :] = ListFromList[0:3]
print(returnMat[index, :]) # [4.092000e+04 8.326976e+00 9.539520e-01]
index += 1
print(returnMat)
"""
[[4.0920000e+04 8.3269760e+00 9.5395200e-01]
[1.4488000e+04 7.1534690e+00 1.6739040e+00]
[2.6052000e+04 1.4418710e+00 8.0512400e-01]
...
[2.6575000e+04 1.0650102e+01 8.6662700e-01]
[4.8111000e+04 9.1345280e+00 7.2804500e-01]
[4.3757000e+04 7.8826010e+00 1.3324460e+00]]
"""