scipy.stats.tstd(array, limits=None, inclusive=(True, True)) calculates the trimmed standard deviation of the array elements along the specified axis of the array.
It's formula -
Parameters : array: Input array or object having the elements to calculate the trimmed standard deviation. axis: Axis along which the trimmed standard deviation is to be computed. By default axis = 0. limits: Lower and upper bound of the array to consider, values less than the lower limit or greater than the upper limit will be ignored. If limits is None [default], then all values are used. Returns : Trimmed standard deviation of the array elements based on the set parameters.Code #1:
# Trimmed Standard Deviation
from scipy import stats
import numpy as np
# array elements ranging from 0 to 19
x = np.arange(20)
print("Trimmed Standard Deviation :", stats.tstd(x))
print("\nTrimmed Standard Deviation by setting limit : ",
stats.tstd(x, (2, 10)))
Output:
Code #2: With multi-dimensional data, axis() working
Trimmed Standard Deviation : 5.9160797831 Trimmed Standard Deviation by setting limit : 2.73861278753
# Trimmed Standard Deviation
from scipy import stats
import numpy as np
arr1 = [[1, 3, 27],
[5, 3, 18],
[17, 16, 333],
[3, 6, 82]]
# using axis = 0
print("Trimmed Standard Deviation is with default axis = 0 : \n",
stats.tstd(arr1, axis = 1))
Output:
Trimmed Standard Deviation is with default axis = 0 : 94.0423824505