from scipy.stats import variation
A = np.random.randn(10, 10)
# max variation along rows of A;
# rows: axis=0, cols: axis=1
var = variation(A, axis=0)
idmax = np.argmax(var)
print(idmax)
由于变异系数是标准差与平均值的比率,因此可以避免引入变异。
A = np.random.randn(10, 10)
cv = lambda x: np.std(x) / np.mean(x)
var = np.apply_along_axis(cv, axis=0, arr=A)
idmax = np.argmax(var)
使用scipy获取变化系数,使用np.argmax获取最大行。可以使用variance函数的axis参数计算行或列的最大变化。
由于变异系数是标准差与平均值的比率,因此可以避免引入变异。
关于PutonSpecacles的答案。
由于变量计算了有偏标准差与平均值的比率,因此将原始lambda中的
np.var
更改为np.std
是有意义的。非stats导入版本应如下所示:
相关问题 更多 >
编程相关推荐