【问题标题】:Rolling mean over numpy arraynumpy数组的滚动平均值
【发布时间】:2021-04-17 01:15:06
【问题描述】:

我想通过 numpy 数组中的 list_ 函数,很像一个 for 循环,我希望计算列表中每 3 个数字的平均值。因此,y_mean 将使用前 3 个值 457.334015,424.440002,394.795990 计算,然后将使用接下来的 3 个值 424.440002,394.795990,408.903992 进行计算,依此类推。 y_mean 函数在下面不起作用,有什么办法可以修复它。

import numpy as np
list_= np.array([457.334015,424.440002,394.795990,408.903992,398.821014,402.152008,435.790985,423.204987,411.574005,
404.424988,399.519989,377.181000,375.467010,386.944000,383.614990,375.071991,359.511993,328.865997,
320.510010,330.079010,336.187012,352.940002,365.026001,361.562012,362.299011,378.549011,390.414001,
400.869995,394.773010,382.556000])

number = 3
start = np.arange(start=1, stop=len(list_)-number, step=1)
stop = np.arange(start=number+1, stop=len(list_), step=1)
y_mean = list_[start:stop].mean()
print(y_mean)

【问题讨论】:

  • @Julien 我已经更新了详细信息。 y_mean 不经过范围 list_
  • 您已经发布了两次相同的问题,请等待答案,如果您想更改问题的某些内容,请编辑该问题而不是开始新帖子。其他人可能正在尝试解决您的原始帖子。
  • @firefireeyyy 请让我知道我的回答是否有用:)
  • 这能回答你的问题吗? Moving average or running mean

标签: python numpy rolling-computation


【解决方案1】:

你可以使用numpy.convolve:

np.convolve(list_, np.ones(3), "valid")/3

【讨论】:

    猜你喜欢
    • 2014-11-29
    • 2019-09-22
    • 2022-11-03
    • 2013-08-29
    • 2015-12-08
    • 1970-01-01
    • 2015-09-29
    相关资源
    最近更新 更多