python画直方图成绩分析-使用Python进行描述性统计

更新时间:2023-07-20 19:13:25 阅读: 评论:0

python画直⽅图成绩分析-使⽤Python进⾏描述性统计
2 使⽤NumPy和SciPy进⾏数值分析
2.1 基本概念
1 from numpy importarray
2 from numpy.random importnormal, randint
3 #使⽤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组数的相关系数。对⾓线为1
12 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绘制以上图形,创建数据的代码如下:
1 from numpy importarray
2 from numpy.random importnormal3
4 defgenData():
5 heights =[]
6 weights =[]
7 grades =[]
8 N = 10000
9
dare的用法总结
10 for i inrange(N):11 whileTrue:12 #⾝⾼服从均值172,标准差为6的正态分布
13 height = normal(172, 6)14 if 0 < height: break
母亲的勇气
15 whileTrue:16 #体重由⾝⾼作为⾃变量的线性回归模型产⽣,误差服从标准正态分布
17 weight = (height - 80) * 0.7 + normal(0, 1)18 if 0 < weight: break
19 whileTrue:20 #分数服从均值为70,标准差为15的正态分布
21 score = normal(70, 15)22 if 0 <= score and score <= 100:23 grade = 'E' if score < 60 el ('D' if score < 70 el ('C' if score < 80 el ('B' if score < 90 el 'A')))24 break
25 heights.append(height)26 weights.append(weight)27 grades.append(grade)28 returnarray(heights), array(weights),
array(grades)29
嘉奖事迹材料30 heights, weights, grades = genData()
View Code
3.2 频数分析天紫界
3.2.1 定性分析(柱状图、饼形图)
柱状图是以柱的⾼度来指代某种类型的频数,使⽤Matplotlib对成绩这⼀定性变量绘制柱状图的代码如下:
1 from matplotlib importpyplot2
3 #绘制柱状图
4 defdrawBar(grades):
5 xticks = ['A', 'B', 'C', 'D', 'E']
6 gradeGroup ={}
7 #对每⼀类成绩进⾏频数统计
8 for grade ingrades:9 gradeGroup[grade] = (grade, 0) + 1
10 #创建柱状图
11 #第⼀个参数为柱的横坐标
12 #第⼆个参数为柱的⾼度
13 #参数align为柱的对齐⽅式,以第⼀个参数为参考标准
14 pyplot.bar(range(5), [(xtick, 0) for xtick in xticks], align='center')15
16 #设置柱的⽂字说明
17 #第⼀个参数为⽂字说明的横坐标
18 #第⼆个参数为⽂字说明的内容
icks(range(5), xticks)20
21 #设置横坐标的⽂字说明
22 pyplot.xlabel('Grade')23 #设置纵坐标的⽂字说明
24 pyplot.ylabel('Frequency')25 #设置标题
26 pyplot.title('Grades Of Male Students')27 #绘图
28 pyplot.show()29
奔腾电饭锅
30 drawBar(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] = (grade, 0) + 1
9 #创建饼形图
10 #第⼀个参数为扇形的⾯积
11 #labels参数为扇形的说明⽂字
12 #autopct参数为扇形占⽐的显⽰格式
13 pyplot.pie([(label, 0) for label in labels], labels=labels, autopct='%1.1f%%')14 pyplot.title('Grades Of Male Students')15 pyplot.show()16
17 drawPie(grades)
绘制出来的饼形图效果如下:

本文发布于:2023-07-20 19:13:25,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1107450.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   均值   程度   分析   服从   相关
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图