字典值的统计检验
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())
下面有一些基本代码可以测试正态分布:
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())