从大约 50000 个包含大约 100 万个值(所有数字)的非结构化文本文件中,我需要计算每个单元格的平均值,即所有 50.000 个文件的平均值。
文件的结构例如
4.7 3.9 5.9 6.2 6.6 6.6 6.5 4.7 5.5 11.2
21.9 12.4 5.6 4.5 5.8 6.7 5.4 3.6 3.9 0.7 0.8
我需要所有文件的每个单元格位置的平均值。
例如,我需要文本文件中所有第一个元素的平均值,超过所有 50.000 个文本文件(但不仅是第一个元素,而是所有元素)。
有什么想法如何在 R 或 Python 中做到这一点吗?
编辑:附加示例(非常非常简化) enter image description here
我想根据文件 1、文件 2 和文件 3 中的单元格值计算新文件中的平均值 (MEAN),如下面的链接所示。但是,它应该是一个自动脚本,因为它不是 3但有 50.000 个文件,每个文件中有许多 10 万个值。
最佳答案
在Python中,我建议一个简单的方法,希望我能理解你。
您可以获取所有文件,然后迭代它们,以便将所有空格分隔的数字放入列表中。所有这些列表将存储在另一个列表中以转换为矩阵,易于使用 numpy 管理。
这里我给大家举个例子。
import os
flist = os.listdir(fdir)
import numpy as np
numbers = [] #list of files numbers lists
for text in flist:
with open(filename,'r') as f:
ftext = f.read().split() #the file has only space-separated numbers
ftext = [float(n) for n in ftext]
numbers.append( np.array( ftext ) )
numbers = np.vstack(numbers)
示例:
对每个文件的第一个单元格求和,意味着对后一个矩阵的第一列求和,因此:
sum_over_first_cells = np.sum( numbers[:,0] )
希望对您有所帮助。
关于python - 计算不同文件的平均单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50862015/