python - 计算不同文件的平均单元格值
问题描述
从大约 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 中做到这一点?
编辑:附加示例(非常非常简化) 在此处输入图像描述
我想根据文件 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] )
希望它会有所帮助。
推荐阅读
- go - close a port from go code - not cmd to lsof
- java - Using Dialog Boxes to create a construction bill (everytime I try and run it is terminated)?
- r - Add edges to scale-free network
- reactjs - How to highlight selected day or days in react big calendar
- bash - 如何将第一个 bash 变量的分数放入第二个?
- node.js - Cannot Get in Node Js
- r - Can I use the unlist function in a dataframe?
- javascript - How to get token_id and access_token values from Angular Session object
- angular-universal - Angular 8 - Error while adding '@nguniversal/express-engine' to project: 'Schematic input does not validate against the Schema: {}'
- excel - VBA 无法打开包含动态名称的备份文件