Skip to content
Related Articles

Related Articles

sciPy stats.variation() function | Python
  • Last Updated : 13 Feb, 2019

scipy.stats.variation(arr, axis = None) function computes the coefficient of variation. It is defined as the ratio of standard deviation to mean.

Parameters :
arr : [array_like] input array.
axis : [int or tuples of int] axis along which we want to calculate the coefficient of variation.
-> axis = 0 coefficient of variation along the column.
-> axis = 1 coefficient of variation working along the row.

Results : Coefficient of variation of the array with values along specified axis.

Code #1: Use of variation()




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]

 
Code #2: How to implement without variation()




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]

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :