使用 numpy 使用以时间为中心的“窗口”计算运行平均值

时间:2021-02-11 22:02:48

标签: python arrays numpy statistics mean

我有一个数据文本文件,其中包含在房间内进行的时间和温度测量。我想计算室温在 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 个答案:

答案 0 :(得分:0)

只需使用卷积在移动窗口中求和并除以窗口的大小。

import numpy as np

arr = np.random.rand(100)

cummean = np.convolve(arr, [1]*24, mode="valid")/24
相关问题