字典值的统计检验

Statistics test on dictionary values

下面有一些基本代码可以测试正态分布:

import numpy as np
import scipy.stats as stats
results = stats.normaltest([various numbers manually inputted])
z,pval = results
if(pval < 0.05):
    print "Data is not normally distributed"
if(pval > 0.05):
    print "Data is normally distributed"

但是我想将它添加到创建值并将它们放入字典(名为 'result')的脚本末尾,这样我就不必手动复制值,但是当我使用 'result' 而不是我得到的统计测试的数字

 34 print("%f seconds" % (time.time() - start_time)) #completes measuring time taken for script to run
---> 35 results = stats.normaltest([result])
 36 z,pval = results
 37 if(pval < 0.05):

TypeError: unsupported operand type(s) for /: 'dict' and 'long'

有什么想法吗?

这是将值输入字典的代码:

new_dictionary = {}
count = 0
for m, n in result.items():
    count += 1
    new_dictionary['month_{}'.format(count)] = result

m 是文件名(因为代码从文件中提取每个值),n 是该文件的计算值

您的问题是您正在对包含单个字典的列表进行正常测试。你想对字典的值做 normaltest,像这样:

results = stats.normaltest(result.values())