【问题标题】:Averaging over n lines, outputting to an array and then continuing平均 n 行,输出到数组,然后继续
【发布时间】:2012-02-01 17:22:17
【问题描述】:

第一次发帖,可能有点简单!

我正在尝试读取一个大型数据文件,我想从标题中读取时间戳,然后平均以下 128 行(包含数字)。完成后,我想首先对具有最高值的数据进行排序。我正在使用 numpy 和 scipy。

为此,我最初从原始数据文件中进行了 grep。

grep "LL" RAW.TXT > LL.TXT

因为我只想要第 6 列,所以我在 Python 中执行此操作:

DATA_LL = genfromtxt(LL.TXT,usecols = (5))

在此之后,我想平均前 128 行并将这个值输出到一个数组。我希望它继续到接下来的 128 行,依此类推,直到文件结束。可能会输出到一个名为 AVERAGES 的变量。

这点,我不知道怎么办。

创建此数组后,我想将时间戳附加到数组:

for line in RAW.readlines():
  if line.contains("Time of record"):
    AVERAGES.append(line)

这里唯一的问题是我认为它会直接附加到列,而我希望它附加到新列。

在此之后,使用正常的排序命令进行排序。

我认为我在正确的轨道上,但非常感谢任何帮助!

干杯

【问题讨论】:

    标签: numpy scipy average


    【解决方案1】:

    执行此操作的一种相当简单的方法是在单独的列表中跟踪时间戳,然后使用 np.concatenatedocumentation on this function 非常有用)和 axis=1 关键字参数将时间戳数组加入您的平均值大批。然而,我看到这种方法的最大问题是,正如所写的那样,您的 AVERAGES 变量将附加字符串而不是浮点数,而 NumPy 数组的数据类型是同质的。如果没有有关您要解决的问题的更多详细信息,除了使用 Python 的 time modulestrptimemktime 函数将时间戳转换为浮点数之外,我没有关于如何解决此问题的具体建议。

    【讨论】:

      猜你喜欢
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-06
      • 1970-01-01
      相关资源
      最近更新 更多