Тест со многими переменными: я искал быстрый способ ввести каждую переменную в тест - PullRequest
1 голос
/ 20 февраля 2020

У меня есть некоторые данные, и мне нужно сравнить среднее значение, но я ищу быстрый способ ввести каждый образец в тест.

from scipy import stats

my_variables = ["a","b","c"]
my_variables[0] = [1,2,3]
my_variables[1] = [0,1,2]
my_variables[2] = [2,3,4]

Kruskal_Wallis_test= stats.kruskal(my_variables[0], my_variables[1], my_variables[2])

Возможно ли сделать что-то подобное?

Kruskal_Wallis_test= stats.kruskal(my_variables)

Ответы [ 3 ]

1 голос
/ 20 февраля 2020

* используется для распаковки списка аргументов при вызове функции, в этом случае он заполняет ваш список my_variables.

Вот как вы должны использовать оператор * в своем коде ,

Kruskal_Wallis_test = stats.kruskal(*my_variables)

, что идентично вызову,

Kruskal_Wallis_test= stats.kruskal(my_variables[0], my_variables[1], my_variables[2])
1 голос
/ 20 февраля 2020

Вы можете использовать *, чтобы распаковать переменную списка

from scipy import stats

my_variables = list()
my_variables.append([1,2,3])
my_variables.append([0,1,2])
my_variables.append([2,3,4])

Kruskal_Wallis_test= stats.kruskal(*my_variables)

print(Kruskal_Wallis_test)

Ответ KruskalResult (статистика = 3.9532163742690107, pvalue = 0.13853833742651062)

1 голос
/ 20 февраля 2020

Как насчет этого:

Kruskal_Wallis_test = stats.kruskal(*my_variables)

Используется * для распаковки списка.

...