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