擅长:python、mysql、java
<p>我喜欢Peter的回答,但是这里有一个替代方法,对代码的更改更少。只需测试列数-如果没有列,就认为是'1'。在</p>
<pre><code>import numpy as np
def running_average(data,windowSize):
dShape = np.shape(data)
try:
dShape[1]
except:
data = [data]
dShape = np.shape(data)
raOut = np.zeros(dShape)
for col in dShape[1]:
rSum=0.0
for row,value in enumerate(data[:][col]):
if row<windowSize:
rSum+=float(value)
else:
rSum=rSum-data[row-windowSize][col]+value
raOut[row][col]=rSum/windowSize
return np.squeeze(raOut)
</code></pre>