我正在尝试将统计测试应用于一些具有可变组数的数据集。当我试图为上述组执行日志转换,同时保持执行测试函数(在本例中为scipy的kruskal()
)的能力时,这会导致一个问题,该函数接受可变数量的参数,每组数据一个参数。
stats.kruskal([np.log(i) for i in args])
不起作用,因为kruskal()
不期望数组列表,而是每个数组一个参数。我如何执行对数转换(或任何类型的更改,真的),同时仍然能够使用该函数?import scipy.stats as stats
import numpy as np
def t(*args):
test = stats.kruskal([np.log(i) for i in args])
return test
a = [11, 12, 4, 42, 12, 1, 21, 12, 6]
b = [1, 12, 4, 3, 14, 8, 8, 6]
c = [2, 2, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8]
print(t(a, b, c))
IIUC,*
在你正在形成的列表前面,而调用kruskal
应该做的伎俩:
test = stats.kruskal(*[np.log(i) for i in args])
Asterisk解包列表,并将列表的每个条目作为参数传递给被调用的函数,即这里的kruskal
。