如何在列表中执行数学运算?



我有一个列表

YEAR    MONTH
1960    5
1961    7
1961    8
1961    11
1962    5
1963    6
1964    
1965    7
1966    7
1966    7
1966    10
1967    4
1967    8
1968    
1969    
1970    8
1971    6
1971    9
1971    10
1972    7
1973    6
1973    9
1974    10
1974    10
1975    10
1976    
1977    
1978    9
1979    11
1980    7
1980    7
1980    8
1981    
1982    10
1982    12
1983    
1984    7
1985    9
1986    
1987    
1988    9
1988    10
1989    7
1989    10
1990    
1991    7
1992    
1993    6
1993    7
1993    9
1993    9
1994    
1995    7
1996    8
1996    9
1997    5
1998    8
1998    9
1998    10
1999    8
1999    9
2000    9
2001    
2002    1
2003    5
2003    7
2003    8
2003    9
2003    10
2004    
2005    11
2006    7
2006    10
2007    9
2007    11
2007    11
2008    5
2009    5
2009    7
2009    9
2009    9
2010    10
2011    5
2011    9
2011    9
2012    8
2013    7
2014    9
2015    7
2016    
2017    8
2018    10
2019    11
2020    

我想执行一个运行平滑时间序列,使用公式生成另一个列表:

((A-E)+3*(B+D)+4*C)/12

最后一个值在z之前。我无法在列表中找到数学运算的样本。大多数参考文献和示例都在两个列表之间。我在用Jupyter Notebook

您可以使用滑动窗口方法。这意味着您将获得一个特定大小的窗口,并将其滑动到数据上,在每一步执行计算。

如果你想使用5的窗口大小,你可以开始执行列表的前5个元素的计算:(a - e)+3*(B+D)+4C。然后你可以将窗口向右移动一个元素,并使用接下来的5个元素重新计算平滑值:(B-F)+3(C+E)+4*D。您可以继续此过程,直到您到达列表的末尾。

def running_smooth(data, window_size):
smoothed_data = []
for i in range(len(data) - window_size + 1):
window = data[i:i+window_size]
#calculation here
value = (window[0]-window[4]) + 3*(window[1]+window[3]) + 4*window[2]
smoothed_data.append(value)
return smoothed_data

最新更新