sciPy stats.variation()函数| Python
原文:https://www.geesforgeks.org/scipy-stats-variation-function-python/
**scipy.stats.variation(arr, axis = None)**
函数计算变异系数。它被定义为标准差与平均值之比。
参数: arr:【array _ like】输入数组。 轴:【int 或 int 的元组】轴,我们要沿此轴计算变异系数。 - >轴= 0 沿柱变异系数。 - >轴= 1 个沿行工作的变异系数。
结果:数组随指定轴数值的变异系数。
代码#1: 变异的使用()
from scipy.stats import variation
import numpy as np
arr = np.random.randn(5, 5)
print ("array : \n", arr)
# rows: axis = 0, cols: axis = 1
print ("\nVariation at axis = 0: \n", variation(arr, axis = 0))
print ("\nVariation at axis = 1: \n", variation(arr, axis = 1))
Output:
array :
[[-1.16536706 -1.29744691 -0.39964651 2.14909277 -1.00669835]
[ 0.79979681 0.91566149 -0.823054 0.9189682 -0.01061181]
[ 0.9532622 0.38630077 -0.79026789 -0.70154086 0.79087801]
[ 0.53553389 1.46409899 1.89903817 -0.35360202 -0.14597738]
[-1.53582875 -0.50077039 -0.23073327 0.32457064 -0.43269088]]
Variation at axis = 0:
[-12.73042404 5.10272979 -14.6476392 2.15882202 -3.64031032]
Variation at axis = 1:
[-3.73200773 1.90419038 5.77300406 1.29451485 -1.27228112]
代码#2: 如何实现无变异()
import numpy as np
arr = np.random.randn(5, 5)
print ("array : \n", arr)
# this function works similar to variation()
cv = lambda x: np.std(x) / np.mean(x)
var1 = np.apply_along_axis(cv, axis = 0, arr = arr)
print ("\nVariation at axis = 0: \n", var1)
var2 = np.apply_along_axis(cv, axis = 1, arr = arr)
print ("\nVariation at axis = 0: \n", var2)
Output:
array :
[[ 0.51268414 -1.93697931 0.41573223 2.14911168 0.15036631]
[-0.50407207 1.51519879 -0.42217231 -1.09609322 1.93184432]
[-1.07727163 0.27195529 -0.1308108 -1.75406388 0.94046395]
[ 1.23283059 -0.03112461 0.59725109 0.06671002 -0.97537666]
[ 1.1233506 0.97658799 -1.10309113 -1.33142901 -0.28470146]]
Variation at axis = 0:
[ 3.52845174 7.40891024 -4.74078192 -3.57928544 2.85092056]
Variation at axis = 0:
[ 5.04874565 4.22763514 -2.74104828 4.10772935 -8.24126977]