增加的移动平均

我想计算增加的移动平均值。

我的主要目标是获得增加的移动平均值,使得第一个移动平均值是第一个值的平均值,第二个移动平均值是前两个值的平均值,第三个移动平均值是前四个值的平均值,第四个移动平均值是前六个值的平均值,依此类推。

如何使用Python中的numpy库来实现这一点?

我正在使用Python对时间序列数据进行分析。我对移动平均值也很感兴趣,为了计算目标变量的移动平均值,我使用了以下函数来计算目标变量的MA。

def movingaverage(values, avg_number):    weights = np.repeat(1.0, avg_number)/avg_number    smas = np.convolve(values, weights, 'valid')    return smas

在这个函数中,我提供了我的pandas序列和用于计算相应平均值的平均数。

现在,我想计算增加的移动平均值。如上所述,平均值是在固定数量上计算的,比如90。

但在减少/增加的移动平均值的情况下,这个数字会在每个下一个值处减少/增加。

我的主要目标是获得增加的移动平均值,使得第一个移动平均值是第一个值的平均值,第二个移动平均值是前两个值的平均值,第三个移动平均值是前四个值的平均值,第四个移动平均值是前六个值的平均值,依此类推。

如何使用Python中的numpy库来实现这一点?

如果输入是[1,5,3,6,8,4,6,8,4,2,3,5,8,6,4],输出将是增加的移动平均值,如[1,3,3,3.75....]


回答:

你可以使用cumsumnp.arange,例如

x = np.array([1,5,3,6,8,4,6,8,4,2,3,5,8,6,4])y = x.cumsum()/np.arange(1,len(x)+1)

输出:

array([ 1.        ,  3.        ,  3.        ,  3.75      ,  4.6       ,     4.5       ,  4.71428571,  5.125     ,  5.        ,  4.7       ,     4.54545455,  4.58333333,  4.84615385,  4.92857143,  4.86666667])

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注