numpy.savetxt的问题

时间:2014-03-04 08:51:29

标签: python file numpy

我正在使用python 2.6,我正在尝试使用来自numpy的savetxt在一个文件上写入vector。

在我在大学写的一个较旧的程序中,我需要从文件中读取数据,将最后一列从度数转换为radiants,然后将结果写入另一个文件;这就是我提出的:

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 个答案:

答案 0 :(得分:1)

您的列表必须采用不同的形式(请查看括号):

par = [[1, 2, 3, 4, 5, 6]]
np.savetext(fout, par, delimiter="\t")