defma(data, delay):
res =[]for i inrange(len(data)- delay +1):
val =0for j inrange(delay):
val += data[i + j]
val /= delay
val =round(val)
res.append(val)return res
a =[1437,1532,1503,1498,1524,1552,1542,1632]print(ma(a,3))print(ma(a,5))
实现卡方值计算函数calCS(data),主程序中调用calCS函数进行验证。
defcalCS(data):
rows =len(data)
cols =len(data[0])
rS =[]for i in data:
rS.append(sum(i))
cS =[]for i inrange(cols):
s =0for j inrange(rows):
s += data[j][i]
cS.append(s)
n =sum(cS)
res =0for i inrange(rows):for j inrange(cols):
eij = rS[i]*cS[j]/n
res +=(data[i][j]-eij)**2/eij
return res
data =[[40,11],[24,19]]
calCS(data)
实现滑动平均ma(data, delay)函数,结果保留整数存在序列中并返回。主程序总调用ma函数进行验证。def ma(data, delay): res = [] for i in range(len(data) - delay + 1): val = 0 for j in range(delay): val += data[i + j] val /= delay val = round(val)