5.6 KiB
Python 中的均值和标准差
原文:https://www.askpython.com/python/examples/mean-and-standard-deviation-python
均值和标准差是统计学中的两个基本指标。我们可以使用统计模块在 Python 中找出均值和标准差。标准差也缩写为 SD。
什么是卑鄙?
平均值是所有条目的总和除以条目数。例如,如果我们有一个 5 个数字的列表[1,2,3,4,5],那么平均值将是(1+2+3+4+5)/5 = 3。
什么是标准差?
标准差 是一组数值的变异量或离差量的度量。我们首先需要计算数值的均值,然后计算方差,最后是标准差。
标准差的使用
假设我们有美国各州每平方公里的人口数据。我们可以计算标准差来找出人口是如何均匀分布的。较小的值意味着分布是均匀的,而较大的值意味着一些地方很少有人居住,而一些地区人口稠密。
让我们看看计算平均值和标准差所需的步骤。
计算平均值的步骤
- 取所有条目的总和**。**
- 用总数除以条目数的**。**
计算标准差的步骤
- 如上所述计算平均值。[1,2,3,4,5]的平均值是 3。
- 从条目值中减去平均值,计算每个条目的方差。所以方差会是[-2,-1,0,1,2]。
- 然后对每个结果值求平方,并将结果相加。对于上面的例子,它将变成 4+1+0+1+4=10。
- 然后将结果除以数据点数减一。这将给出方差。因此方差将是 10/(5-1) = 2.5
- 方差(上面计算的)的平方根就是标准差。所以标准差会是 sqrt(2.5) = 1.5811388300841898。
在 Python 中求平均值和标准差
让我们用 Python 写代码来计算均值和标准差。我们将使用统计模块,稍后尝试编写我们自己的实现。
1.使用统计模块
此模块为您提供了直接计算平均值和标准差的选项。
让我们从导入模块开始。
import statistics
让我们用样本数据声明一个列表。
data = [7,5,4,9,12,45]
现在,要计算样本数据的平均值,请使用以下函数:
statistics.mean(data)
该语句将返回数据的平均值。我们可以使用以下公式打印输出中的平均值:
print("Mean of the sample is % s " %(statistics.mean(data)))
我们得到的输出为:
Mean of the sample is 13.666666666666666
如果您使用 IDE 进行编码,您可以将鼠标悬停在该语句上,获得有关 statistics.mean()函数的更多信息。
或者,你可以在这里 阅读文档 。
要计算样本数据的标准偏差,请使用:
print("Standard Deviation of the sample is % s "%(statistics.stdev(data)))
我们得到的输出为:
Standard Deviation of the sample is 15.61623087261029
这里有一个关于 statistics.stdev ()函数的简要文档。
在 Python 中查找标准偏差和平均值的完整代码
以上代码片段的完整代码如下:
import statistics
data = [7,5,4,9,12,45]
print("Standard Deviation of the sample is % s "% (statistics.stdev(data)))
print("Mean of the sample is % s " % (statistics.mean(data)))
2.编写自定义函数来计算标准偏差
让我们用 Python 编写计算均值和标准差的函数。
def mean(data):
n = len(data)
mean = sum(data) / n
return mean
这个函数将计算平均值。
现在让我们写一个函数来计算标准差。
这可能有点棘手,所以让我们一步一步来。
标准差是方差的平方根。所以我们可以写两个函数:
- 第一个函数将计算方差
- 第二个函数将计算方差的平方根并返回标准差。
计算方差的函数如下:
def variance(data):
n = len(data)
mean = sum(data) / n
deviations = [(x - mean) ** 2 for x in data]
variance = sum(deviations) / n
return variance
可以参考教程开头给出的步骤来理解代码。
现在我们可以写一个函数来计算方差的平方根。
def stdev(data):
import math
var = variance(data)
std_dev = math.sqrt(var)
return std_dev
完全码
完整的代码如下:
import numpy as np #for declaring an array or simply use list
def mean(data):
n = len(data)
mean = sum(data) / n
return mean
def variance(data):
n = len(data)
mean = sum(data) / n
deviations = [(x - mean) ** 2 for x in data]
variance = sum(deviations) / n
return variance
def stdev(data):
import math
var = variance(data)
std_dev = math.sqrt(var)
return std_dev
data = np.array([7,5,4,9,12,45])
print("Standard Deviation of the sample is % s "% (stdev(data)))
print("Mean of the sample is % s " % (mean(data)))
结论
平均值和标准偏差是统计分析中使用的数学值。Python 统计模块提供了有用的函数来轻松计算这些值。

