我是Python新手。我有10个输入文件的格式如下所示。每个文件包含接收器(接收器1-10)的测量数据。每个接收器都有来自10个发射器(发射器1-10)的测量值。文件按时间顺序排列,以秒为单位。在
我要同时读10行的文件。当文件被读取时,我想从每个文件中为每个发射器收集4个测量值,并将这些值平均,以得到每个接收器发射器对4秒的平均值。我想跟踪每对收发信机的平均值。一旦我收集了特定接收器所有发射器的4秒平均值,我想平均这些值以获得该接收器的平均值。我还想跟踪这些平均值(时间平均值和测量平均值)以及它们属于哪个接收器。在
我无法将这些文件加载到内存中,因为这些文件很大(大约是千兆字节)。由于文件的大小,将所有平均值保存在内存中也是一个问题。我只想在内存中为每个收发对保存一小时的平均值数据。一旦我有了一个小时的平均值,当计算出一个新的平均值时,我想丢弃最旧的一个。在
我在想字典可能是记录数据的最好方法。在
我怎样才能完成上面的任务?在
输入文件:
列格式:时间(秒)变送器测量
0.0 1 2.4779E+02
0.0 2 2.8147E+02
0.0 3 2.7437E+02
0.0 4 2.6661E+02
0.0 5 2.2637E+02
0.0 6 2.1457E+02
0.0 7 2.3750E+02
0.0 8 2.9573E+02
0.0 9 2.7339E+02
0.0 10 2.4982E+02
1.0 1 2.1086E+02
1.0 2 2.7459E+02
1.0 3 2.1569E+02
1.0 4 2.0018E+02
1.0 5 2.8732E+02
1.0 6 2.2633E+02
1.0 7 2.2900E+02
1.0 8 2.6883E+02
1.0 9 2.4482E+02
1.0 10 2.8314E+02
2.0 1 2.6987E+02
2.0 2 2.5946E+02
2.0 3 2.8195E+02
2.0 4 2.3097E+02
2.0 5 2.2592E+02
2.0 6 2.5316E+02
2.0 7 2.5562E+02
2.0 8 2.5892E+02
2.0 9 2.1258E+02
2.0 10 2.5791E+02
你可以用文件对象.readline()以并行方式访问文件。在
类似地,可以对10个不同的输入文件使用10个对象,并对每个对象使用readline。希望这有帮助。在
对于您的问题陈述,可以读取每个文件中每个发射机的测量值,并对这些值进行平均,从而得到每个收发两用机对4秒的平均值。要跟踪每个收发两用机对的每个平均值,请创建字典或自定义列出。然后为接收者构建逻辑以获得最终结果/值。但请确保,一旦数据不再存在,就从字典/列表中删除它们需要。希望这有帮助。在
一些Python工具将有助于:
defaultdict
,其中每一项都是一个列表,键入发送器IDglob
列出目录中的所有数据文件namedtuple
s,我们可以给每一位数据命名,这比简单的列表或元组更容易阅读并行打开数据文件,按变送器存储样本列表
每个发射机的4个采样平均值输出
^{pr2}$相关问题 更多 >
编程相关推荐