Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不丢失结构的情况下(记录)转换*args参数_Python_Scipy_Variable Length - Fatal编程技术网

Python 如何在不丢失结构的情况下(记录)转换*args参数

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

我正在尝试对一些组数可变的数据集进行统计测试。当我试图为所述组执行日志转换,同时保持执行测试函数的能力(在本例中为scipy的
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