从多个文件导入数据并按列求和

时间:2018-10-29 00:55:00

标签: python-3.x numpy

我有n个txt文件,每个文件在99列中都有99个浮点数。我阅读了每个文件,并通过以下脚本附加了所有数据。

add_test(sometest somecommand)
set_tests_properties(sometest PROPERTIES PASS_REGULAR_EXPRESSION some_regex) 

在那之后,我需要对每个文件进行列式汇总。例如file1,column1 + file2,column1 + ... + file(n)column(1)并针对所有列进行迭代。什么是执行此操作的有效方法?我可以使用列表理解吗?
**编辑过的代码,现在可以正常使用。

import glob
import numpy as np
import matplotlib.pyplot as plt
msd_files = (glob.glob('MSD_no_fs*'))
msd_all=[]

for msd_file in msd_files:
    # print(msd_file)
    msd = numpy.loadtxt(fname=msd_file, delimiter=',')
    msd_all.append(msd)

1 个答案:

答案 0 :(得分:1)

这取决于您想要的效率水平。使用numpy加载许多csv文件可能是一个错误的选择。这是我的建议。

import glob
import numpy as np

msd_files = (glob.glob('MSD_no_fs*'))
msd_all=[]

for msd_file in msd_files:
    with open(msd_file) as f:
        for line in f:
            msd_all.append([float(v) for v in line.strip().split(',')])

msa_array = np.array(msd_all)
result = msa_array.sum(axis=0)