用Python学分析:集中与分散

散点图进阶,结合箱体图与直方图对数据形成全面的认识

描述数据集中趋势的分析量:

均值 - 全部数据的算术平均值

众数 - 一组数据中出现次数最多的变量值

中位数 - 一组数据经过顺序排列后处于中间位置上的变量值

描述数据离散程度的分析量:

方差 - 一组数据各变量值与其平均值离差平方和的平均数

标准差 - 方差的平方根

偏态 - 描述数据分布形态的统计量,其描述的是某总体取值分布的对称性。偏度 = 三阶中心距 / 标准差的三次方

峰度 - 描述总体中所有取值分布形态陡缓程度的统计量,这个统计量需要与正态分布相比较。 峰度 = 四阶中心距 / 方差平方(标准差四次方) - 3

描述性分析数据的计算:

 1 # 准备数据
 2 import numpy as np
 3 import matplotlib.pyplot as plt
 4
 5 n = 1000
 6 x = np.random.randn(n)
 7 y = [int((item)*100) for item in np.random.randn( n )] #100以内的正整数随机数
 8
 9 # 均值μ
10 mu = np.mean(y)
11 # 标准差δ  sigma = np.sqrt(np.sum(np.square( y - mu ))/n)
12 sigma = np.std(y)
13 # 峰度(公式准确度待确认)
14 kurtosis = np.sum(np.power((y - mu),4))/(n) # 四阶中心距
15 kurtosis = kurtosis / np.power(sigma,4)-3 # 峰度 = 四阶中心距 / 方差平方(标准差四次方) - 3
16 # 偏度
17 skewness = np.sum(np.power((y - mu),3))/(n) # 三阶中心距
18 skewness = skewness / np.power(sigma,3) # 偏度 = 三阶中心距 / 标准差的三次方
19
20 print(mu, sigma,skewness, kurtosis)

结果:

-0.944 105.50647783 0.0750892544722 -0.171492308767

图表显示

 1 # 图表显示
 2 fig = plt.figure( figsize = ( 8, 6 )) # 设置图表大小
 3 #设置图表的大小:[左, 下, 宽, 高] 规定的矩形区域 (全部是0~1之间的数,表示比例)
 4 rect_1 = [0.15, 0.30, 0.7,  0.55]
 5 rect_2 = [0.85, 0.30, 0.15, 0.55]
 6 rect_3 = [0.15, 0.05, 0.7,  0.2]
 7 fig_1 = plt.axes(rect_1) # 第一个图表
 8 fig_2 = plt.axes(rect_2) # 第二个图表
 9 fig_3 = plt.axes(rect_3) # 第三个图表
10 #设置图表公共变量
11 title_size = 13
12 inner_color = ‘cyan‘
13 outer_color = ‘teal‘
14 # 第一个图表:散点图
15 fig_1.scatter( x, y, s = 20, color = inner_color, edgecolor = outer_color, alpha = 0.6)
16 fig_1.set_title(‘散点图 Scatter‘, fontsize = title_size)
17 fig_1.set_ylim( min(y),max(y)+50 )
18 fig_1.grid(True)
19
20 # 第二个图表:箱体图
21 fig_2.boxplot(y,
22               widths = 0.55,
23               patch_artist = True, # 要求用自定义颜色填充盒形图,默认白色填充
24               boxprops = {‘color‘:outer_color,‘facecolor‘:inner_color, }, # 设置箱体属性,填充色和边框色
25               flierprops = {‘marker‘:‘o‘,‘markerfacecolor‘:inner_color,‘color‘:outer_color,}, # 设置异常值属性,点的形状、填充色和边框色
26               meanprops = {‘marker‘:‘h‘,‘markerfacecolor‘:outer_color}, # 设置均值点的属性,点的形状、填充色
27               medianprops = {‘linestyle‘:‘-‘,‘color‘:‘red‘} # 设置中位数线的属性,线的类型和颜色
28              )
29 fig_2.set_ylim( fig_1.get_ylim()) #设置箱体图与散点图同一纵坐标轴
30 fig_2.get_yaxis().set_visible(False) #关闭坐标轴
31 fig_2.get_xaxis().set_visible(False) #关闭坐标轴
32 # 去除边框显示
33 remove_col = [‘top‘,‘bottom‘,‘left‘,‘right‘]
34 for item in remove_col:
35     fig_2.spines[item].set_visible(False)
36     fig_2.spines[item].set_position((‘data‘,0))
37 fig.text(0.86, 0.84,‘箱体图 Boxplot‘, fontsize = title_size )
38
39 # 第三个图表:直方图
40 n, bins, patches = fig_3.hist( y, color = inner_color, alpha = 0.8, edgecolor = outer_color )
41 fig_3.set_ylim([0,max(n)+50])
42 fig_3.spines[‘top‘].set_visible(False) # 去除边框显示
43 fig_3.spines[‘top‘].set_position((‘data‘,0)) # 去除边框刻度显示
44 fig_3.spines[‘right‘].set_color(‘none‘) # 去除边框显示
45 fig_3.spines[‘right‘].set_position((‘data‘,0)) # 去除边框刻度显示
46 fig.text(0.17, 0.23,‘直方图 Hist‘, fontsize = title_size )
47
48 # 文本信息
49 fig.text(0.9, .20, ‘均值 $\mu = {0:.2f}$‘.format(mu))
50 fig.text(0.9, .15, ‘标准差 $\sigma = {0:.2f}$‘.format(sigma))
51 fig.text(0.9, .10, ‘偏度 $\gamma 1 = {0:.2f}$‘.format(skewness))
52 fig.text(0.9, .05, ‘峰度 $\gamma 2 = {0:.2f}$‘.format(kurtosis))
53 plt.show()

结果:

原文地址:https://www.cnblogs.com/violetchan/p/10163683.html

时间: 2024-10-11 22:56:56

用Python学分析:集中与分散的相关文章

用Python学分析 - 散点图

# 运用散点图对数据分布得到直观的认识 1 import numpy as np 2 import matplotlib.pyplot as plt 3 4 # 设计 x, y 轴 5 n = 10000 6 x = np.random.randn( n ) # 随机值 7 y = np.random.randn( n ) 8 9 # 显示散点图 10 colors = ['b','r','g','y','k','m'] 11 plt.scatter(x, y, c = colors, mark

python日志分析

微秒   毫秒 datetime seek定位指针 从行尾到行首 fd.seek(-2,1)  1  当前位置 fd.tell() fd.seek(-2,2)  2   最后位置 fd.tell() fd.seek(0,0)   0  最前位置 read(1)读一位    read() 全部都读 tac与cat    行首到行尾 reversed   翻转字符串 只读一部分    通过时间判断 200 404  503  十分钟之内   第八列  apache.log 1.首先匹配时间格式, D

python学完了,在这要总结一下

退学了24天了 ,python也学了24天.学习python对我来说并不是很简单,我先在学习css,要结合python来学习.python是很强大语言,它具有简洁的与语法.丰富的扩展模块,使用它可以节约成本. 这是python的局域网  # -*- coding:utf-8 -*- import threadingimport socketclass ListenThread(threading.Thread):    def __init__(self,server):        prin

《用 Python 学微积分》笔记2

<用 Python 学微积分>原文见参考资料 1. 13.大 O 记法 待续…… 参考资料: [1] https://ryancheunggit.gitbooks.io/calculus-with-python/content/

Python代码分析工具:PyChecker、Pylint

1 概述 PyChecker是Python代码的静态分析工具,它能够帮助查找Python代码的bug,而且能够对代码的复杂度和格式等提出警告. PyChecker可以工作在多种方式之下.首先,PyChecker会导入所检查文件中包含的模块,检查导入是否正确,同时检查文件中的函数.类和方法等. PyChecker可以检查出来的问题有如下几种: 全局量没有找到,比如没有导入模块 传递给函数.方法.构造器的参数数目错误 传递给内建函数和方法的参数数目错误 字符串格式化信息不匹配 使用不存在的类方法和属

Python性能分析指南(未完成)

英文原文:http://www.huyng.com/posts/python-performance-analysis/ 译文:http://www.oschina.net/translate/python-performance-analysis 虽然你所写的每个Python程序并不总是需要严密的性能分析,但是当这样的问题出现时,如果能知道Python生态系统中的许多种工具,这样总是可以让人安心的. 分析一个程序的性能可以归结为回答4个基本的问题: 1.它运行的有多块? 2.那里是速度的瓶颈?

第五次作业——python效能分析与几个问题(个人作业)

第五次作业--效能分析与几个问题(个人作业) 前言 阅读了大家对于本课程的目标和规划之后,想必很多同学都跃跃欲试,迫不及待想要提高自身实践能力,那么就从第一个个人项目开始吧,题目要求见下. 阅读 阅读<构建之法>第一章至第三章的内容,并在下方作业里体现出阅读后的成果.特别是第2章中的效能分析及个人软件开发流程(PSP). 参考文章: <构建之法>教学笔记--Python中的效能分析与几个问题 四则运算器效能分析 软工第2次作业-四则运算器 题目描述 可以选择以下题目(或者自主选择题

Python大佬分析了15万歌词,告诉你民谣歌手们到底在唱什么

前几天小编写了两篇利用Python采集网易云歌词和采集网易云音乐歌曲文章,相信小伙伴们经过实践之后都能够顺利的采集到自己想要听的歌曲.下面的歌词是小编去年11月份采集的民谣歌词,经过统计,歌词量达到将近15万. 用Python采集的民谣歌词 心血来潮,想利用Python来分析一下民谣歌手们到底在唱些什么鬼~~ 首先运用jieba库进行分词和词频统计分析,得到歌词中的词频统计,部分主要代码如下图所示: 运用jieba库进行分词和词频统计分析 得到的词频后将其导入到Excel表格中,详情如下图: 民

Python性能分析

Python性能分析 https://www.cnblogs.com/lrysjtu/p/5651816.html https://www.cnblogs.com/cbscan/articles/3341231.html 使用ipdb 使用profile import profile def profileTest(): Total =1; for i in range(10): Total=Total*(i+1) print Total return Total if __name__ ==