平均值和标准差是统计学中的两个基本指标。我们可以使用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 进行编码,您可以将鼠标悬停在语句上并获取有关 stats.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 统计模块提供了有用的函数来轻松计算这些值。