gpt4 book ai didi

python - 有没有一种对 numpy 数组进行 "moving"计算的好方法?

转载 作者:太空宇宙 更新时间:2023-11-04 02:48:26 25 4
gpt4 key购买 nike

我正在从事一个数据处理项目,在该项目中,我通常希望采用一维 numpy 数组作为输入,并输出一个等长数组,该数组的元素是通过处理一定数量的输入元素生成的。这是一个使用 for 循环解决的相对简单的问题,但我想知道 numpy 是否有内置的方法来执行此操作,我认为这会快得多。

为了说明我的目标,假设一次生成一个向量 (B) 1 个元素,并让当前生成的元素为元素 N(表示为 B[N])。

假设我希望 B 是一个向量,其元素对应于向量 A 中元素的简单移动平均值。我想说的是

B[i] = AVG(A[(i-N):i]) #N <= i < len(A) 

这里的 i 是正在运行的任何底层循环的迭代索引,AVG 是一个通用函数,它计算传递给它的一组数字的平均值。

正如我所说,使用 for 循环很容易,但这似乎像 numpy 之类的东西应该能够很容易地完成,所以我想在我的代码中使用不太理想的结构之前我应该​​问问专业人士。

最佳答案

查看 standard moving window functions在 Pandas 。例如,窗口大小为 10 的移动平均值将为 pd.rolling_mean(data, window=10)

你也可以用pd.rolling_apply(data, lambda x: np.mean(x), window=10)提供你自己的聚合函数,和前面的一样。

关于python - 有没有一种对 numpy 数组进行 "moving"计算的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44527735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com