第一次发布,可能有点容易!
我正在尝试读取一个大型数据文件,我想从标题中读取时间戳,然后平均以下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)
这里唯一的问题是我认为它会直接附加到列中,当我希望它附加到新列时。
在此之后,使用普通排序命令进行排序。
我认为我走在正确的轨道上,但任何帮助都非常感谢!
干杯
答案 0 :(得分:1)
一种相当简单的方法是在单独的列表中跟踪时间戳,然后使用np.concatenate
(documentation on this function非常有帮助)并使用axis=1
关键字参数进行连接timestamps数组到averages数组。然而,我在这种方法中遇到的最大问题是,如上所述,您的AVERAGES
变量将附加字符串而不是浮点数,而NumPy数组在数据类型中是同构的。如果没有关于您试图解决的问题的更多细节,除了使用Python time
module的strptime
和mktime
函数之外,我没有具体的建议如何解决这个问题。将时间戳转换为浮点数。