我有一个代码,每次迭代都会输出一个N长度的Numpy数组。
例如 -- theta = [ 0, 1, 2, 3, 4 ]
我希望能够动态地将数组保存到文本文件或.csv文件中,以便我可以稍后加载数据文件并适当地提取对应于哪个迭代的数组。基本上,它应该以有序的方式保存。
我假设数据文件看起来像这样:-
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6 ...(随机输出(
我想使用np.c_但我不想在每次迭代时覆盖文件,如果我只是将终端输出保存为>输出.txt,它会保存为包括括号在内的数组。我不知道如何阅读这样的文本文件。
是否有适当的方法来执行此操作,即写入和读取数据?
我使用pandas和openpyxl来存储我用Python计算的数据。
这里有一个示例,我生成一个 numpy 数组,我将其转换为 pandas 数据帧,然后将其保存到位于"path"中的 excel 文件中(请记住,如果您正在处理 Windows,则需要在文件路径的开头添加"r"才能将符号"\"转换为符号"\\"(
import numpy as np
import pandas as pd
from openpyxl import load_workbook
path = r"C:UsersfedelDesktopexcelDatafileName.xlsx"
data = np.random.randn(100)
data = pd.DataFrame(data)
n = 0
data.to_excel(path, sheet_name = 'sheet number ' + str(n)) # save data in an excel worksheet
现在,您可以打开"文件名.xlsx"文件,并看到您将数据存储在名为"工作表编号 0"的工作工作表上。
下一步是生成其他数据并将其保存在其他工作表中,而不删除第一个工作表
book = load_workbook(path) #load excel file
writer = pd.ExcelWriter(path, engine = 'openpyxl') # use pandas to write in the some excel file
writer.book = book # write what you saved before in order to avoid "overwriting"
for n in range(1, 10):
data = np.random.randn(100)
data = pd.DataFrame(data)
data.to_excel(writer, sheet_name = 'sheet number ' + str(n) ) # iteratively save data on different excel worksheets
writer.save()
writer.close()
当您想打开和分析您存储的数据时,我建议您输入
xls = pd.ExcelFile(path)
df1 = xls.parse(0)
如果要从第一个工作表打开数据,或者
xls = pd.ExcelFile(path)
df1 = xls.parse(1)
如果你想从第二个打开数据,你甚至可以写
xls = pd.ExcelFile(path)
dataNames = xls.sheet_names
df1 = xls.parse(dataNames[0])
你在寻找类似np.savetxt
的东西吗?
如果要将数据追加到现有文件,可以使用追加模式打开该文件。
with open('data.txt', 'a') as f:
np.savetxt(f, newdata)
看看这篇文章 使用 numpy 将矩阵附加到现有文件
您可以使用np.loadtxt
读取文本文件
ndarray
的.tofile()
方法怎么样?要阅读,请使用numpy.fromfile()
.