Related Articles

# sciPy stats.signaltonoise() function | Python

• Last Updated : 18 Feb, 2019

scipy.stats.signaltonoise(arr, axis=0, ddof=0) function computes the signal-to-noise ratio of the input data.

Its formula :

Parameters :
arr : [array_like]Input array or object having the elements to calculate the signal-to-noise ratio
axis : Axis along which the mean is to be computed. By default axis = 0.
ddof : Degree of freedom correction for Standard Deviation.

Results : mean to standard deviation ratio i.e. signal-to-noise ratio.

Code #1: Working

 `# stats.signaltonoise() method ``import` `numpy as np``from` `scipy ``import` `stats``  ` `  ` `arr1 ``=` `[[``20``, ``2``, ``7``, ``1``, ``34``],``        ``[``50``, ``12``, ``12``, ``34``, ``4``]]`` ` `arr2 ``=` `[``50``, ``12``, ``12``, ``34``, ``4``]`` ` `print` `(``"\narr1 : "``, arr1)``print` `(``"\narr2 : "``, arr2)`` ` `print` `(``"\nsignaltonoise ratio for arr1 : "``, ``       ``stats.signaltonoise(arr1, axis ``=` `0``, ddof ``=` `0``))`` ` `print` `(``"\nsignaltonoise ratio for arr1 : "``, ``       ``stats.signaltonoise(arr1, axis ``=` `1``, ddof ``=` `0``))`` ` `print` `(``"\nsignaltonoise ratio for arr1 : "``, ``       ``stats.signaltonoise(arr2, axis ``=` `0``, ddof ``=` `0``)) `

Output :

arr1 : [[20, 2, 7, 1, 34], [50, 12, 12, 34, 4]]

arr2 : [50, 12, 12, 34, 4]

signaltonoise ratio for arr1 : [2.33333333 1.4 3.8 1.06060606 1.26666667]

signaltonoise ratio for arr1 : [1.01779811 1.31482934]

signaltonoise ratio for arr2 : 1.3148293369202024

Code #2 : How to implement

 `def` `signaltonoise(a, axis, ddof):``    ``a ``=` `np.asanyarray(a)``    ``m ``=` `a.mean(axis)``    ``sd ``=` `a.std(axis ``=` `axis, ddof ``=` `ddof)``    ``return` `np.where(sd ``=``=` `0``, ``0``, m ``/` `sd)`` ` `print` `(``"\nsignaltonoise ratio for arr1 : "``, ``       ``signaltonoise(arr1, axis ``=` `0``, ddof ``=` `0``))`` ` `print` `(``"\nsignaltonoise ratio for arr1 : "``, ``       ``signaltonoise(arr1, axis ``=` `1``, ddof ``=` `0``))`` ` `print` `(``"\nsignaltonoise ratio for arr2 : "``, ``       ``signaltonoise(arr2, axis ``=` `0``, ddof ``=` `0``))`

Output :

signaltonoise ratio for arr1 : [2.33333333 1.4 3.8 1.06060606 1.26666667]

signaltonoise ratio for arr1 : [1.01779811 1.31482934]

signaltonoise ratio for arr2 : 1.3148293369202024

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. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up