我尝试将mstats.kruskalwallis
与存储在'array'中的某些数据组一起使用,我尝试将它们放入一个列表中,但是我发现mstats.kruskalwallis
如果列表中的数据包含不同的长度。
例如
from scipy.stats import mstats
import numpy as np
a1=np.random.randn(10)
a2=np.random.randn(10)
a3=a1,a2
print(mstats.kruskalwallis(a1,a2))
print(mstats.kruskalwallis(a3))
结果与
KruskalResult(statistic=0.05142857142857338, pvalue=0.8205958397554376)
KruskalResult(statistic=0.05142857142857338, pvalue=0.8205958397554376)
但是,如果我将两个“数组”设置为不同的长度,例如:
b1=np.random.randn(10)
b2=np.random.randn(12)
b3=b1,b2
print(mstats.kruskalwallis(b1,b2))
print(mstats.kruskalwallis(b3))
第一个的结果是
KruskalResult(statistic=0.626086956521732, pvalue=0.4287942873854923)
第二个是
ValueError: The input should be 2D
如果我的b3带有多个“数组”,该怎么办才能解决错误?
最佳答案
您遇到的问题是您需要添加argument unpacking operator-*
:
mstats.kruskalwallis(*b3))
原因是调用带有两个参数的
kruskalwallis
函数与调用带有两个参数的元组的同一个函数的区别。要将这两个元组转换为函数的两个参数,您需要使用星号-参数解压缩。
关于python - 如何使用mstats.kruskalwallis,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57266828/