亲爱的大家,
我是Python初学者。我正在寻找在 Python 中执行以下操作的最佳方法:假设我有三个文本文件,每个文件都有 m 行和 n 列数字,名称文件 A、B 和 C。对于以下内容,内容可以是索引为 A[i][j]
或 B[k][l]
等等。我需要计算 A[0][0]
、B[0][0]
、C[0][0]
的平均值>,并将其写入文件 D 的 D[0][0]
处。其余记录也是如此。例如,我们假设:
A:
1 2 3
4 5 6
B:
0 1 3
2 4 5
C:
2 5 6
1 1 1
因此,文件D应该是
D:
1 2.67 4
2.33 3.33 4
我的实际文件当然比现在的文件大,大约有一些 Mb。我不确定最好的解决方案,如果读取按文件名索引的嵌套结构中的所有文件内容,或者尝试读取每个文件、每一行并计算平均值。阅读手册后,fileinput
模块在这种情况下没有用,因为它不会像我在这里需要的那样“并行”读取行,而是“串行”读取行。非常感谢任何指导或建议。
最佳答案
看看numpy 。它可以将三个文件读入三个数组(使用 fromfile ),计算平均值并将其导出到文本文件(使用 tofile )。
import numpy as np
a = np.fromfile('A.csv', dtype=np.int)
b = np.fromfile('B.csv', dtype=np.int)
c = np.fromfile('C.csv', dtype=np.int)
d = (a + b + c) / 3.0
d.tofile('D.csv')
“一些MB”的大小应该不是问题。
关于python - 使用python计算多个文件的记录平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4159582/