如何在Python中计算一个列表的标准偏差(3种方法)

1,925 阅读1分钟

你可以使用以下三种方法之一在Python中计算一个列表的标准偏差:

方法1:使用NumPy库

import numpy as np

#calculate standard deviation of list
np.std(my_list)

方法2:使用统计库

import statistics as stat

#calculate standard deviation of list
stat.stdev(my_list)

方法 3: 使用自定义公式

#calculate standard deviation of list
st.stdev(my_list)

下面的例子展示了如何在实践中使用这些方法中的每一种:

方法1:使用NumPy库计算标准偏差

下面的代码显示了如何使用NumPy计算一个列表的样本标准差和群体标准差:

import numpy as np

#define list
my_list = [3, 5, 5, 6, 7, 8, 13, 14, 14, 17, 18]

#calculate sample standard deviation of list
np.std(my_list, ddof=1)

5.310367218940701

#calculate population standard deviation of list 
np.std(my_list)

5.063236478416116

请注意,对于一个给定的数据集,群体标准差总是比样本标准差小。

方法2:使用统计库计算标准差

下面的代码显示了如何使用Python统计库来计算一个列表的样本标准差和群体标准差:

import statistics as stat

#define list
my_list = [3, 5, 5, 6, 7, 8, 13, 14, 14, 17, 18]

#calculate sample standard deviation of list
stat.stdev(my_list)

5.310367218940701

#calculate population standard deviation of list 
stat.pstdev(my_list)

5.063236478416116

方法3:使用自定义公式计算标准差

下面的代码显示了如何计算一个列表的样本标准差和群体标准差,而不需要导入任何 Python 库:

#define list
my_list = [3, 5, 5, 6, 7, 8, 13, 14, 14, 17, 18]

#calculate sample standard deviation of list
(sum((x-(sum(my_list) / len(my_list)))**2 for x in my_list) / (len(my_list)-1))**0.5

5.310367218940701

#calculate population standard deviation of list 
(sum((x-(sum(my_list) / len(my_list)))**2 for x in my_list) / len(my_list))**0.5

5.063236478416116

请注意,这三种方法都计算出了相同的列表标准差值。

其他资源

如何在Python中计算平均值的标准误差
如何在Python中计算平均平方误差(MSE)