【目录】

1 描述性统计是什么?2 使用NumPy和SciPy进行数值分析  2.1 基本概念  2.2 中心位置(均值、中位数、众数)  2.3 发散程度(极差,方差、标准差、变异系数)  2.4 偏差程度(z-分数)   2.5 相关程度(协方差,相关系数)   2.6 回顾3 使用Matplotlib进行图分析  3.1 基本概念  3.2 频数分析    3.2.1 定性分析(柱状图、饼形图)    3.2.2 定量分析(直方图、累积曲线)  3.3 关系分析(散点图)  3.4 探索分析(箱形图)   3.5 回顾4 总结

1 描述性统计是什么?

描述性统计是借助图表或者总结性的数值来描述数据的统计手段。数据挖掘工作的数据分析阶段,我们可借助描述性统计来描绘或总结数据的基本情况,一来可以梳理自己的思维,二来可以更好地向他人展示数据分析结果。数值分析的过程中,我们往往要计算出数据的统计特征,用来做科学计算的NumPy和SciPy工具可以满足我们的需求。Matpotlob工具可用来绘制图,满足图分析的需求。

2 使用NumPy和SciPy进行数值分析

2.1 基本概念

1 from numpy importarray2 from numpy.random importnormal, randint3 #使用List来创造一组数据4 data = [1, 2, 3]5 #使用ndarray来创造一组数据6 data = array([1, 2, 3])7 #创造一组服从正态分布的定量数据8 data = normal(0, 10, size=10)9 #创造一组服从均匀分布的定性数据10 data = randint(0, 10, size=10)

2.2 中心位置(均值、中位数、众数)

数据的中心位置是我们最容易想到的数据特征。借由中心位置,我们可以知道数据的一个平均情况,如果要对新数据进行预测,那么平均情况是非常直观地选择。数据的中心位置可分为均值(Mean),中位数(Median),众数(Mode)。其中均值和中位数用于定量的数据,众数用于定性的数据。

对于定量数据(Data)来说,均值是总和除以总量(N),中位数是数值大小位于中间(奇偶总量处理不同)的值:

均值相对中位数来说,包含的信息量更大,但是容易受异常的影响。使用NumPy计算均值与中位数:

1 from numpy importmean, median2 3 #计算均值4 mean(data)5 #计算中位数6 median(data)

对于定性数据来说,众数是出现次数最多的值,使用SciPy计算众数:

1 from scipy.stats importmode2 3 #计算众数4 mode(data)

2.3 发散程度(极差、方差、标准差、变异系数)

对数据的中心位置有所了解以后,一般我们会想要知道数据以中心位置为标准有多发散。如果以中心位置来预测新数据,那么发散程度决定了预测的准确性。数据的发散程度可用极差(PTP)、方差(Variance)、标准差(STD)、变异系数(CV)来衡量,它们的计算方法如下:

极差是只考虑了最大值和最小值的发散程度指标,相对来说,方差包含了更多的信息,标准差基于方差但是与原始数据同量级,变异系数基于标准差但是进行了无量纲处理。使用NumPy计算极差、方差、标准差和变异系数:

1 from numpy importmean, ptp, var, std2 3 #极差4 ptp(data)5 #方差6 var(data)7 #标准差8 std(data)9 #变异系数10 mean(data) / std(data)

2.4 偏差程度(z-分数)

之前提到均值容易受异常值影响,那么如何衡量偏差,偏差到多少算异常是两个必须要解决的问题。定义z-分数(Z-Score)为测量值距均值相差的标准差数目:

当标准差不为0且不为较接近于0的数时,z-分数是有意义的,使用NumPy计算z-分数:

1 from numpy importmean, std2 3 #计算第一个值的z-分数4 (data[0]-mean(data)) / std(data)

通常来说,z-分数的绝对值大于3将视为异常。

2.5 相关程度

有两组数据时,我们关心这两组数据是否相关,相关程度有多少。用协方差(COV)和相关系数(CORRCOEF)来衡量相关程度:

协方差的绝对值越大表示相关程度越大,协方差为正值表示正相关,负值为负相关,0为不相关。相关系数是基于协方差但进行了无量纲处理。使用NumPy计算协方差和相关系数:

1 from numpy importarray, cov, corrcoef2 3 data =array([data1, data2])4 5 #计算两组数的协方差6 #参数bias=1表示结果需要除以N,否则只计算了分子部分7 #返回结果为矩阵,第i行第j列的数据表示第i组数与第j组数的协方差。对角线为方差8 cov(data, bias=1)9 10 #计算两组数的相关系数11 #返回结果为矩阵,第i行第j列的数据表示第i组数与第j组数的相关系数。对角线为112 corrcoef(data)

2.6 回顾

方法

说明

numpy

array

创造一组数

numpy.random

normal

创造一组服从正态分布的定量数

numpy.random

randint

创造一组服从均匀分布的定性数

numpy

mean

计算均值

numpy

median

计算中位数

scipy.stats

mode

计算众数

numpy

ptp

计算极差

numpy

var

计算方差

numpy

std

计算标准差

numpy

cov

计算协方差

numpy

corrcoef

计算相关系数

3 使用Matplotlib进行图分析

3.1 基本概念

使用图分析可以更加直观地展示数据的分布(频数分析)和关系(关系分析)。柱状图和饼形图是对定性数据进行频数分析的常用工具,使用前需将每一类的频数计算出来。直方图和累积曲线是对定量数据进行频数分析的常用工具,直方图对应密度函数而累积曲线对应分布函数。散点图可用来对两组数据的关系进行描述。在没有分析目标时,需要对数据进行探索性的分析,箱形图将帮助我们完成这一任务。

在此,我们使用一组容量为10000的男学生身高,体重,成绩数据来讲解如何使用Matplotlib绘制以上图形,创建数据的代码如下:

View Code

3.2 频数分析

3.2.1 定性分析(柱状图、饼形图)

柱状图是以柱的高度来指代某种类型的频数,使用Matplotlib对成绩这一定性变量绘制柱状图的代码如下:

1 from matplotlib importpyplot

23#绘制柱状图

4defdrawBar(grades):

5 xticks = ['A','B','C','D','E']6 gradeGroup ={}

7 #对每一类成绩进行频数统计

8 forgradeingrades:

9 gradeGroup[grade] = gradeGroup.get(grade, 0) 1

10 #创建柱状图

11 #第一个参数为柱的横坐标

12 #第二个参数为柱的高度

13 #参数align为柱的对齐方式,以第一个参数为参考标准

14 pyplot.bar(range(5), [gradeGroup.get(xtick, 0)forxtickinxticks], align='center')

1516 #设置柱的文字说明

17 #第一个参数为文字说明的横坐标

18 #第二个参数为文字说明的内容

19 pyplot.xticks(range(5), xticks)

2021 #设置横坐标的文字说明

22 pyplot.xlabel('Grade')

23 #设置纵坐标的文字说明

24 pyplot.ylabel('Frequency')

25 #设置标题

26 pyplot.title('Grades Of Male Students')

27 #绘图

28pyplot.show()

29

30drawBar(grades)

绘制出来的柱状图的效果如下:

而饼形图是以扇形的面积来指代某种类型的频率,使用Matplotlib对成绩这一定性变量绘制饼形图的代码如下:

1 from matplotlib importpyplot2 3 #绘制饼形图4 defdrawPie(grades):5 labels = ['A', 'B', 'C', 'D', 'E']6 gradeGroup ={}7 for grade ingrades:8 gradeGroup[grade] = gradeGroup.get(grade, 0) 19 #创建饼形图10 #第一个参数为扇形的面积11 #labels参数为扇形的说明文字12 #autopct参数为扇形占比的显示格式13 pyplot.pie([gradeGroup.get(label, 0) for label in labels], labels=labels, autopct='%1.1f%%'

python变异系数_使用Python进行描述性统计 【目录】 1 描述性统计是什么? 2 使用NumPy和SciPy进行数 ......相关推荐

  1. 第一章 第一节:Python基础_认识Python

    Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...

  2. excel python插件_利用 Python 插件 xlwings 读写 Excel

    Python 通过 xlwings 读取 Excel 数据 去年底公司让我做设备管理,多次委婉拒绝,最终还是做了.其实我比较喜欢技术.做管理后发现现场没有停机率统计,而原始数据有,每次要自己在Exce ...

  3. garch模型python步骤_利用python进行时间序列分析——从随机游走到GARCH模型(一)...

    本文是主体是翻译Time Series Analysis (TSA) in Python - Linear Models to GARCH.但是文章主要是python操作,而理论较少,因此在此基础上补 ...

  4. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  5. python计算机_基础python计算机知识

    1.计算机基础知识 计算机基础 :组成---输入输出设备 储存器 CPU 内存 cpu 中央处理器 :处理各种数据的 内存 存储数据 硬盘 存储数据的 什么是操作系统:控制计算机的工作流程 软件 什么 ...

  6. python 系统进程_在Python中监视所有系统进程

    我试图用Python在我的操作系统(Ubuntu)中收集一些进程的统计信息(生命周期.开始时间/结束时间等) 其中一个任务:我编写了一个函数,它获取系统中进程的名称和ID,但它很难看.在def get ...

  7. python 标准差_标准差python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 方差是每个值与均值的差值的平方的平均值,标准差是方差的平方根(这是有用的,因为取 ...

  8. 网络安全用python吗_使用Python进行网络安全渗透——密码攻击测试器

    相关文章: 本篇将会涉及: HTTP 基本认证 对HTTP Basic认证进行密码暴力攻击测试 什么是HTTP 基本认证 HTTP基本认证(HTTP Basic Authentication)是HTT ...

  9. 动态照片墙 python 实现_利用python生成照片墙的示例代码

    这篇文章主要介绍了利用python生成照片墙的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 PIL(Python Im ...

  10. python字符串_(Python基础教程之七)Python字符串操作

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

最新文章

  1. 区块链基础:理论和术语
  2. UVA11019 Martix Matcher --- AC自动机
  3. toastutils报错_史上最好用的Android全量版本更新库XUpdate使用指南
  4. 面试官系统精讲Java源码及大厂真题 - 16 ConcurrentHashMap 源码解析和设计思路
  5. vrep中remoteAPI 编程中遇到的没有预留命令执行时间遇到的问题
  6. java单人多人聊天_java简单多人聊天
  7. matlab回归问题,机器学习笔记(一)—— 线性回归问题与Matlab求解
  8. 我在开发中所遇到的iOS7新特性以及iOS7与iOS6的适配问题总结
  9. CUDA: 共享内存与同步
  10. 全国二级c语言公共基础知识,全国计算机二级C语言及公共基础知识复习资料
  11. 如何修改pdf文件内容
  12. 普歌+计算机网络--滑动窗口协议
  13. 汽车工况电量计算-转速扭矩图
  14. Tolua使用笔记(上)
  15. C++ operator
  16. 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络
  17. 灰度差分统计法计算图像的对比度
  18. 轮盘赌算法原理(ACO算法概率选择方法)
  19. 网易云音乐 2.1.0
  20. 一款SpringBoot轻量级物联网综合业务支撑平台,附源码

热门文章

  1. QT图形显示和处理5
  2. no tests were found异常springBoot配置
  3. 【python 监控报警】python自动发微信监控报警
  4. 统一监控报警平台架构设计思路
  5. html5音频剪辑,访谈类音频剪辑的5个小贴士
  6. Vue中配置代理服务器
  7. 第一次结对编程作业——需求分析与原型设计
  8. 解决MySQL登录ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor)问题
  9. dom影像图形成数字地形图_DOM卫星影像
  10. python+django+vue高校奖学金评定管理系统