对每列数据进行求平均值,并将所有平均值按列的先后顺序放入一个list中?

数据一共40列,想对每列数据进行求平均值,并将所有平均值按列的先后顺序放入一个list中,该怎么写代码?
clipboard.png

阅读 27.3k
4 个回答
sums = [0] * 40
with open('inputfile', 'r') as f:
    lines = 0
    for line in f:
        lines += 1
        for i, data in enumerate(line.split()):
            sums[i] += float(data) 
avgs = [s / lines for s in sums]

file: data.txt

0.1 0.2 0.3
0.4 0.5 0.6
0.7 0.8 0.9

code:

import pandas as pd
print(list(pd.read_csv("data.txt", sep=" ", header=None, dtype="float64").mean()))

读成dataframe,直接求平均值mean不是方便么。

新手上路,请多包涵

numpy的array数组的话,可以使用np.mean(A,axis=0)按列求取平均数。
当然,按行取平均数则为np.mean(A,axis=1)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题