python - 计算不同文件的平均单元格值

标签 python r file

从大约 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 管理。
这里我给大家举个例子。

  • 0.将所有文件放在同一个目录下,例如fdir
  • 1.获取所有文件名

    import os
    flist = os.listdir(fdir)
    

  • 2. 现在遍历文件列表。假设文件中的格式化位置并不重要,而重要的是序数序列(即第一个、第二个……而不是左上角、右上角……)。

    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 ) )
    

  • 4. 将列表列表转换为矩阵

    numbers = np.vstack(numbers)
    

  • 5. 进行操作..
    示例:
    对每个文件的第一个单元格求和,意味着对后一个矩阵的第一列求和,因此:

    sum_over_first_cells = np.sum( numbers[:,0] )
    

  • 希望对您有所帮助。

    关于python - 计算不同文件的平均单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50862015/

    相关文章:

    python - 索尼生活日志 API : SSL Handshake failure

    python - Pandas 的部分总和和小计

    python - 批处理文件中的空白并搁置保存在不同的目录中

    java - android:内部文件读取

    javascript - Chrome 扩展程序,来自字符串的文件?

    javascript - 如何从 URL 读取图像类型?

    python - 使用python删除和修改一堆文件中的文本

    r - 带有灰色和黑色虚线的线图

    r - 如何迁移 Rstudio 文件和已安装的软件包(按版本到新计算机)

    r - 过滤 data.table 为 !is.na()