numpy loadtxt和savetxt多个文件?

时间:2014-03-29 21:24:01

标签: python numpy

我希望阅读,计算和打印出相同格式的多个文件。

filenames2 = ["AAA", "BBB", "CCC", "DDD", "EEE"]
for filename2 in filenames2:
   with loadtxt (filename2, float) as data:
      a1 = data[:,0]
      b1 = data[:,3]
      c1 = data[:,4]
      d1 = data[:,5]
      e1 = data[:,6]
     %% DO something with all those data. 
   z = numpy.array((calculated_a11, calculated_b11, calculated_c11), dtype = float)
   z2 = z.T
   numpy.savetxt('avegedoutput_%s.txt' %filenames2, z2.reshape((1000,3)), fmt='%i %f %f')

我希望以这种方式编写,以便希望能够处理多个文件。但似乎numpy savetxt和loadtxt不能以这种方式工作....欢迎任何建议。

提前致谢。

ps)另外,我是否需要为这些数据读取部分制作空矩阵?似乎这些命令会产生这些错误:“TypeError:'file'对象是unsubscriptable”。

我认为我需要制作零矩阵,并将数据放入那些矩阵中,就像我在Matlab中那样。这是正确的吗?

1 个答案:

答案 0 :(得分:2)

numpy.loadtxt接受一个文件名(字符串)并返回一个numpy数组。所以你不需要with子句:

filenames2 = ["AAA", "BBB", "CCC", "DDD", "EEE"]
for filename2 in filenames2:
    data = np.loadtxt(filename2)
    a1 = data[:,0]
    # ...
    np.savetxt('output_filename.txt', z, ...)

到目前为止,我认为没有必要在代码中制作零矩阵。 data将提交文件内容,a1b1,...,将从data获取其内容。