我想以5秒的间隔计算样本数据中信号数据的平均VAL1、VAL2和SIGNAL值。换句话说,使用包含的样本数据,我想计算第一个数据点(在本例中是)01:45:18到01:45:22、01:45:23到01:45:27、01:45:28到01:45:32和01:45:33到其余数据之间的平均值。在
理想情况下,我希望将平均信息存储在变量中,例如:dec_average、ra_average和n_average
有什么建议或想法可以让我做到这一点?这是我目前掌握的密码。在
import sys
import os
import matplotlib.pyplot as plt
from matplotlib.dates import strpdate2num
import numpy as np
import matplotlib.colors
import matplotlib.cm
sat_id,dec,ra,n = np.loadtxt("mydata.asc", usecols=(3,5,7,9), unpack=True)
示例数据:
时间戳:01:45:18 SATID 02 VAL1 36 VAL2 188信号34
时间戳:01:45:19 SATID 02 VAL1 36 VAL2 188信号34
时间戳:01:45:20 SATID 02 VAL1 36 VAL2 188信号35
时间戳:01:45:21 SATID 02 VAL1 36 VAL2 188信号34
时间戳:01:45:22 SATID 02 VAL1 36 VAL2 188信号35
时间戳:01:45:23 SATID 02 VAL1 36 VAL2 188信号35
时间戳:01:45:24 SATID 02 VAL1 36 VAL2 188信号36
时间戳:01:45:25 SATID 02 VAL1 36 VAL2 188信号35
时间戳:01:45:26 SATID 02 VAL1 36 VAL2 188信号36
时间戳:01:45:27 SATID 02 VAL1 37 VAL2 188信号36
时间戳:01:45:28 SATID 02 VAL1 37 VAL2 188信号36
时间戳:01:45:29 SATID 02 VAL1 37 VAL2 188信号36
时间戳:01:45:30 SATID 02 VAL1 38 VAL2 188信号37
时间戳:01:45:31 SATID 02 VAL1 38 VAL2 188信号36
时间戳:01:45:32 SATID 02 VAL1 39 VAL2 188信号37
时间戳:01:45:33 SATID 02 VAL1 39 VAL2 188信号37
时间戳:01:45:34 SATID 02 VAL1 39 VAL2 188信号37
时间戳:01:45:35 SATID 02 VAL1 39 VAL2 188信号38
从阿莱奥的回答here
第一步是从每个条目捕获重要的数据,这些数据是}的值,这是您已经完成的。在
VAL1
、VAL2
和{然后对于每一组五个条目,您需要获取每个字段的平均值,这可以通过将每个字段的值相加然后除以5来完成。使用
numpy
这可以通过使用np.average()
并传入要求平均值的数组来实现,在我们的例子中,这将是第一次的前五个元素,第二次是第五个元素,依此类推,因为dec
可以这样做。在我们将创建一个列表
dec_average
来存储每组条目的平均值。在这将运行在
^{pr2}$dec
数组中,只要还剩至少五个元素,就平均每组五个元素,并将该平均值追加到dec_average
。在一旦我们完成了这个循环,如果数组中元素的数量不是5的倍数,那么仍然有一些元素需要平均。为了得到它们的平均值,我们需要得到最后的
x
项,其中x
是数组长度除以5的余数;因此,模。在将这三段代码放在一起会导致一个系统,即每五个列表项计算一个平均值,如果最后只剩下不到五个项,则只需求剩余项的平均值,然后将每个平均值追加到数组中。这可以扩展以适合您的其他数据项。在
相关问题 更多 >
编程相关推荐