我是python的初学者,试图将这些输出保存以用于循环计算到.txt文件。
我有40列300行的输入数据。我要放入示例数据:
4.3 3.4 2.3
8.5 1.0 0.0
2.4 4.2 4.5
3.9 2.1 0.5
import numpy as np
q = np.loadtxt('test.txt')
def qtot(i):
total = 0
for j in range (3):
total += q[i][j]
return total
我想将qtot
保存到输出文件中。
任何帮助将不胜感激。
答案 0 :(得分:0)
您已将300行文件读入内存,这是一个numpy数组。让我们在numpy中进行简单的计算,并将其用于将所有内容保存到文本文件中。
import numpy as np
np.savetxt("output.txt", np.sum( np.loadtxt('test.txt'),axis=1 )[0:5] )
它如何工作.....
请注意,numpy在类似于C的低级代码中执行所有操作。因此,按原始方式对所有300行进行求和将比python中的循环快。
-ADD-
如果要将结果添加到文件中,则应以附加模式打开它:
with open(output_file, "a") as fd:
np.savetxt(fd, np.sum( np.loadtxt('test.txt'),axis=1 )[0:5] )
但是如果要在同一运行中处理多个文件,最好将结果累积到内存中并保存一次
result = []
for fname in [list of input files]:
result.append( np.sum( np.loadtxt(fname),axis=1 )[0:5] )
np.saavetxt("output.txt", np.array(result))