Python 如何在不丢失结构的情况下(记录)转换*args参数
我正在尝试对一些组数可变的数据集进行统计测试。当我试图为所述组执行日志转换,同时保持执行测试函数的能力(在本例中为scipy的Python 如何在不丢失结构的情况下(记录)转换*args参数,python,scipy,variable-length,Python,Scipy,Variable Length,我正在尝试对一些组数可变的数据集进行统计测试。当我试图为所述组执行日志转换,同时保持执行测试函数的能力(在本例中为scipy的kruskal())时,这会导致一个问题,该函数接受可变数量的参数,每组数据一个参数 下面的代码是我想要的。当然,stats.kruskal([np.log(i)表示args中的i])不起作用,因为kruskal()不需要数组列表,而是每个数组一个参数。如何在仍然能够使用该函数的情况下执行日志转换(或者任何类型的更改) import scipy.stats as stat
kruskal()
)时,这会导致一个问题,该函数接受可变数量的参数,每组数据一个参数
下面的代码是我想要的。当然,stats.kruskal([np.log(i)表示args中的i])
不起作用,因为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)表示args中的i])
Asterisk解压列表并将列表的每个条目作为参数传递给被调用的函数,即此处的kruskal