使用 numpy 使用以时间为中心的“windows”计算运行平均值
Posted
技术标签:
【中文标题】使用 numpy 使用以时间为中心的“windows”计算运行平均值【英文标题】:Calculating a running average using time-centered "windows" using numpy 【发布时间】:2021-05-15 17:14:15 【问题描述】:我有一个数据文本文件,其中包含在房间内进行的时间和温度测量。我想计算室温在 25 秒时间间隔内的运行平均值(落后 12 秒,提前 12 秒)。此外,我希望小于 12 秒的时间使用提前 12 秒但小于 12 秒,和大于 15 秒的时间使用落后 15 秒但小于 15 秒。
以下是文本文件中的数据示例:
****************************************
# Room Temperature Data
****************************************
Time(sec) Temperature (F)
0.000000 70.723365
1.000000 71.680261
2.000000 70.688760
3.000000 70.808473
4.000000 71.312032
5.000000 71.092122
6.000000 70.709332
7.000000 71.304622
8.000000 71.750163
9.000000 72.351945
10.000000 73.295310
11.000000 74.050310
12.000000 74.263993
13.000000 73.812078
14.000000 73.849626
15.000000 73.987411
16.000000 74.891099
17.000000 74.779985
18.000000 75.671037
19.000000 75.816610
20.000000 76.651356
21.000000 76.419316
22.000000 75.513236
23.000000 76.234259
24.000000 76.728721
25.000000 76.832285
26.000000 77.067110
27.000000 77.743246
28.000000 78.542883
29.000000 78.436506
30.000000 77.641707
31.000000 78.297866
32.000000 79.028430
33.000000 78.522984
34.000000 78.421532
35.000000 78.708468
36.000000 78.463713
37.000000 78.078904
38.000000 78.865942
39.000000 79.072956
40.000000 79.827616
41.000000 78.946210
42.000000 79.194117
43.000000 79.871765
44.000000 80.085492
45.000000 80.440528
46.000000 80.836500
47.000000 81.725440
48.000000 82.491217
49.000000 81.830982
50.000000 82.190160
51.000000 81.254962
52.000000 81.835875
53.000000 82.459993
54.000000 81.881924
55.000000 81.921508
56.000000 82.496043
57.000000 82.507862
58.000000 83.490328
59.000000 83.438183
60.000000 83.351193
61.000000 75.320445
62.000000 74.922264
63.000000 75.172929
64.000000 75.732617
65.000000 75.574824
66.000000 75.888783
67.000000 75.736023
68.000000 75.439475
69.000000 75.688731
70.000000 76.311728
71.000000 76.299164
72.000000 75.405466
谢谢!
【问题讨论】:
【参考方案1】:只需使用 convolve 在移动窗口中求和,然后除以窗口大小。
import numpy as np
arr = np.random.rand(100)
cummean = np.convolve(arr, [1]*24, mode="valid")/24
【讨论】:
以上是关于使用 numpy 使用以时间为中心的“windows”计算运行平均值的主要内容,如果未能解决你的问题,请参考以下文章