平均n行,输出到数组然后继续

时间:2012-02-01 17:22:17

标签: numpy scipy average

第一次发布,可能有点容易!

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

为此,我最初是从原始数据文件中获取的。

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)

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

在此之后,使用普通排序命令进行排序。

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

干杯

1 个答案:

答案 0 :(得分:1)

一种相当简单的方法是在单独的列表中跟踪时间戳,然后使用np.concatenatedocumentation on this function非常有帮助)并使用axis=1关键字参数进行连接timestamps数组到averages数组。然而,我在这种方法中遇到的最大问题是,如上所述,您的AVERAGES变量将附加字符串而不是浮点数,而NumPy数组在数据类型中是同构的。如果没有关于您试图解决的问题的更多细节,除了使用Python time modulestrptimemktime函数之外,我没有具体的建议如何解决这个问题。将时间戳转换为浮点数。