计算 python 中文本文件列的平均值

calculate of mean for columns of text file in python

我有一个包含 13 列和 10000 行的文本文件。我应该计算第二列和第五列的平均值和标准偏差,但每 200 个数字一次。 代码:

with open('myfile.txt') as f:
    lis1 = [float(line.split()[1]) for line in f]
    lis2 = [float(line.split()[4]) for line in f]
    i = 0

    while (i < len(lis1)):
        g1 = sum(lis1[i:i+200])/200
        g2 = sum(lis2[i:i+200])/200
        i=i+200 

我不明白为什么 g2 是空的,我该如何解决?

这是因为当你创建列表"lis1"时你遍历了整个文件,这意味着你应该重新设置它。尝试在 lis1 和 lis2 调用之间使用 f.seek(0)

如果可能,您应该只通读一次您的文件。否则你必须重置文件指针才能再次读取它。注意:代码未经测试。

lines = []
with open('myfile.txt') as f:
    lines = [line.split() for line in f]
    i = 0

# Now file is closed - operate on the lines read in.
inc = 200
for i in range(0, len(lines), inc):
    # Get all column total
    column_total = [sum(x) for x in zip(*lines[i:i+inc]) ]
    g1 = column_total[1] / inc
    g2 = column_total[4] / inc