如何(log)转换*args参数而不丢失结构



我正在尝试将统计测试应用于一些具有可变组数的数据集。当我试图为上述组执行日志转换,同时保持执行测试函数(在本例中为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

相关内容

  • 没有找到相关文章

最新更新