首页 > 解决方案 > python ANOVA用于可变数量的输入数组

问题描述

我正在实施 Kruskall-Wallis 测试scipy.stats.kruskal。有没有办法为未知数量的输入输入输入参数?

例如,从文档中复制示例

from scipy.stats import kruskal

# 2 input arrays
x1 = [1, 3, 5, 7, 9]
x2 = [2, 4, 6, 8, 10]
kruskal(x1, x2)
# KruskalResult(statistic=0.2727272727272734, pvalue=0.6015081344405895)

# 3 input arrays
x1 = [1, 1, 1]
x2 = [2, 2, 2]
x3 = [2, 2]
kruskal(x1, x2, x3)
# KruskalResult(statistic=7.0, pvalue=0.0301973834223185)

但是,如果我一开始不知道组(输入数组)的数量怎么办?我可以做类似以下的事情,但它似乎不优雅:

input_list = [[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]]
if len(input_list) == 2:
    kresult = kruskal(input_list[0], input_list[1])
elif len(input_list) == 3:
    kresult = kruskal(input_list[0], input_list[1], input_list[2])
elif len(input_list) == 4:
    kresult = kruskal(input_list[0], input_list[1], input_list[2], input_list[3])
# and so on...

标签: python

解决方案


您可以使用扩展运算符

kresult = kruskal(*input_list)

推荐阅读