一段时间内的平均数据?

2024-09-28 05:26:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想以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


Tags: 数据import间隔信号matplotlibasnp时间
2条回答

从阿莱奥的回答here

def running_mean(x, N):
    cumsum = numpy.cumsum(numpy.insert(x, 0, 0)) 
    return (cumsum[N:] - cumsum[:-N]) / N

第一步是从每个条目捕获重要的数据,这些数据是VAL1VAL2和{}的值,这是您已经完成的。在

然后对于每一组五个条目,您需要获取每个字段的平均值,这可以通过将每个字段的值相加然后除以5来完成。使用numpy这可以通过使用np.average()并传入要求平均值的数组来实现,在我们的例子中,这将是第一次的前五个元素,第二次是第五个元素,依此类推,因为dec可以这样做。在

我们将创建一个列表dec_average来存储每组条目的平均值。在

dec_average = []

这将运行在dec数组中,只要还剩至少五个元素,就平均每组五个元素,并将该平均值追加到dec_average。在

^{pr2}$

一旦我们完成了这个循环,如果数组中元素的数量不是5的倍数,那么仍然有一些元素需要平均。为了得到它们的平均值,我们需要得到最后的x项,其中x是数组长度除以5的余数;因此,模。在

if (len(dec)) % 5 != 0:
    dec_average.append(np.average(dec[-(len(dec) % 5):]))

将这三段代码放在一起会导致一个系统,即每五个列表项计算一个平均值,如果最后只剩下不到五个项,则只需求剩余项的平均值,然后将每个平均值追加到数组中。这可以扩展以适合您的其他数据项。在

相关问题 更多 >

    热门问题