numpy.savetxt的问题
我正在使用 Python 2.6,想用 numpy 的 savetxt 功能把一个向量写入文件。
在我大学时写的一个旧程序中,我需要从文件中读取数据,把最后一列从度数转换成弧度,然后把结果写到另一个文件里;这是我写的代码:
import math
import numpy as np
vec=[]
with open("In.txt") as f:
for line in f:
a = float(line.split()[0])
b = float(line.split()[1])
c = float(line.split()[2])
rad = math.pi/2.-(float(line.split()[3])*math.pi/180.)
vec.append((a,b,c,rad))
np.savetxt("Out.txt",vec)
一切都按预期进行:在 Out.txt 文件中,我的数据正确地以表格形式显示。
现在我想做类似的事情:我从一个文件中读取数据,进行一些操作,然后把结果写入一个文件:
fout=open("Out.txt",'a')
for n in range(nsteps)
with open("In.txt") as fin:
for line in fin:
#long operations: at the end I have a vector par with 4 elements
#I want to write this vector as a new line in my output file
np.savetxt(fout,par)
fout.close()
问题是输出结果只有一列:
par[0]
par[1]
par[2]
par[3]
par[0]
par[1]
...
如果我在每一步都在终端输入 par
,它会正确显示为:
[par[0],par[1],par[2],par[3]]
...
我到底哪里做错了呢?
1 个回答
1
你的列表需要用不同的格式(看看括号的样子):
par = [[1, 2, 3, 4, 5, 6]]
np.savetext(fout, par, delimiter="\t")