【发布时间】:2014-03-04 13:36:14
【问题描述】:
我正在使用 numpy savetxt() 将矩阵的元素保存为单行文件(我需要按顺序打印很多)。这是我找到的方法:
import numpy as np
mat = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
with open('myfile.dat','a') as handle:
np.savetxt(handle, mat.reshape(1,mat.size), fmt='%+.8e')
handle.close()
有2个问题:
1) savetxt() 是最佳选择吗?我需要打印 1e5 到 1e7 这些东西......而且我不希望 i/o 成为实际计算的瓶颈。我猜在速度方面,每次迭代都重新打开文件是一个糟糕的计划。
2) 理想情况下,我会打印一些上下文数据来开始每一行,所以我的输出可能如下所示:
(N foo mat):
...
6 -2.309 +1.000 +2.000 ...
7 -4.273 +1.000 +2.000 ...
8 -3.664 +1.000 +2.000 ...
...
我可以使用np.append() 执行此操作,但是第一个数字不会打印为 INT。这种事情可以直接在savetxt() 中实现吗?还是我需要一个类似 C 的 fprintf() 反正?
【问题讨论】:
标签: python python-3.x numpy matrix