我正在尝试使用scipy.stats.f_oneway()
进行方差分析。无论什么意思,它都将array_like
作为输入。
numpy: formal definition of "array_like" objects?
无论如何,当我手动输入要比较的数据时,它可以工作。例如,这有效: 输入:
list1 = [3,4,5,6]
list2 = [4,5,6,7]
list3 = [5,6,7,8]
sp.stats.f_oneway(list1, list2, list3)
输出:
F_onewayResult(statistic=2.3999, pvalue=0.1461)
但是,我想比较很多不同的列表,并希望在我的代码中动态比较它们。
这就是我想要的:
list1 = [3,4,5,6]
list2 = [4,5,6,7]
list3 = [5,6,7,8]
listOfLists = [list1, list2, list3]
sp.stats.f_oneway(listOfLists)
但是,f_oneway不喜欢这种输入格式。所以我在想,也许我可以使用循环创建一个字符串,然后将其解压缩以用作参数,如下所示:
list1 = [3,4,5,6]
list2 = [4,5,6,7]
list3 = [5,6,7,8]
listString = 'list1, list2, list3'
sp.stats.f_oneway(eval(listString))
但是,这不起作用。这使我相信此功能需要输入如下内容:
sp.stats.f_oneway(list1, list2, list3)
如何使用字符串提供f_oneway函数所需的输入?
答案 0 :(得分:2)
您可以执行以下操作:
sp.stats.f_oneway(*listOflists)
这将打开列表并放入3个单独的参数