
在本文中,我们将学习如何实现 Python 程序来计算数据集的标准差。
考虑在任意坐标轴上绘制的一组值。这些值集的标准偏差称为总体,定义为它们之间的变化。如果标准差较低,则绘制的值会接近平均值。但如果标准差较高,值就会离平均值更远。
它由数据集方差的平方根表示。标准差有两种类型 -
人口标准差是从人口的每个数据值计算得出的。因此,它是一个固定的值。数学公式定义如下 -
立即学习“Python免费学习笔记(深入)”;
$$\mathrm{SD\:=\:\sqrt{\frac{\sum(X_i\:-\:X_m)^2}{n}}}$$
Where,
(在哪里)Xm 是数据集的平均值。
Xi 是数据集的元素。
n是数据集中的元素数量。
然而,样本标准差是仅针对人口的某些数据值计算的统计量,因此其值取决于所选择的样本。数学公式定义如下 −
$$\mathrm{SD\:=\:\sqrt{\frac{\sum(X_i\:-\:X_m)^2}{n\:-\:1}}}$$
Where,
(在哪里)Xm 是数据集的平均值。
Xi 是数据集的元素。
n是数据集中的元素数量。
输入输出场景
现在让我们看看不同数据集的一些输入输出场景 -
ShopWind网店系统是国内最专业的网店程序之一,采用ASP语言设计开发,速度快、性能好、安全性高。ShopWind网店购物系统提供性化的后台管理界面,标准的网上商店管理模式和强大的网店软件后台管理功能。ShopWind网店系统提供了灵活强大的模板机制,内置多套免费精美模板,同时可在后台任意更换,让您即刻快速建立不同的网店外观。同时您可以对网模板自定义设计,建立个性化网店形象。ShopWind网
假设数据集仅包含正整数 -
Input: [2, 3, 4, 1, 2, 5] Result: Population Standard Deviation: 1.3437096247164249 Sample Standard Deviation: 0.8975274678557505
假设数据集只包含负整数 -
Input: [-2, -3, -4, -1, -2, -5] Result: Population Standard Deviation: 1.3437096247164249 Sample Standard Deviation: 0.8975274678557505
假设数据集仅包含正整数和负整数 -
Input: [-2, -3, -4, 1, 2, 5] Result: Population Standard Deviation: 3.131382371342656 Sample Standard Deviation: 2.967415635794143
使用数学公式
我们在同一篇文章中已经看到了标准差的公式;现在让我们来看看用Python程序在各种数据集上实现数学公式。
示例
在下面的示例中,我们导入 math 库并通过应用 sqrt() 内置函数来计算数据集的标准差其方差的方法。
import math
#declare the dataset list
dataset = [2, 3, 4, 1, 2, 5]
#find the mean of dataset
sm=0
for i in range(len(dataset)):
sm+=dataset[i]
mean = sm/len(dataset)
#calculating population standard deviation of the dataset
deviation_sum = 0
for i in range(len(dataset)):
deviation_sum+=(dataset[i]- mean)**2
psd = math.sqrt((deviation_sum)/len(dataset))
#calculating sample standard deviation of the dataset
ssd = math.sqrt((deviation_sum)/len(dataset) - 1)
#display output
print("Population standard deviation of the dataset is", psd)
print("Sample standard deviation of the dataset is", ssd)
输出
得到的输出标准差如下 -
Population Standard Deviation of the dataset is 1.3437096247164249 Sample standard deviation of the dataset is 0.8975274678557505
在numpy模块中使用std()函数
在这种方法中,我们导入 numpy 模块,并且只使用 numpy.std() 函数计算一个 numpy 数组的元素的总体标准差。
示例
实现以下 python 程序来计算 numpy 数组元素的标准差 -
import numpy as np
#declare the dataset list
dataset = np.array([2, 3, 4, 1, 2, 5])
#calculating standard deviation of the dataset
sd = np.std(dataset)
#display output
print("Population standard deviation of the dataset is", sd)
输出
标准差显示为以下输出 -
Population Standard Deviation of the dataset is 1.3437096247164249
在统计模块中使用 stdev() 和 pstdev() 函数
Python 中的统计模块提供了名为 stdev() 和 pstdev() 的函数来计算样本数据集的标准差。 Python 中的 stdev() 函数仅计算样本标准差,而 pstdev() 函数计算总体标准差。
两个函数的参数和返回类型是相同的。
示例 1:使用 stdev() 函数
演示使用stdev()函数来计算数据集的样本标准差的Python程序如下所示−
import statistics as st
#declare the dataset list
dataset = [2, 3, 4, 1, 2, 5]
#calculating standard deviation of the dataset
sd = st.stdev(dataset)
#display output
print("Standard Deviation of the dataset is", sd)
输出
作为输出获得的数据集的样本标准差如下 -
Standard Deviation of the dataset is 1.4719601443879744
示例2:使用pstdev()函数
演示如何使用 pstdev() 函数查找数据集总体标准差的 python 程序如下 -
import statistics as st
#declare the dataset list
dataset = [2, 3, 4, 1, 2, 5]
#calculating standard deviation of the dataset
sd = st.pstdev(dataset)
#display output
print("Standard Deviation of the dataset is", sd)
输出
作为输出获得的数据集的样本标准差如下 -
Standard Deviation of the dataset is 1.3437096247164249










