用python进行数据分析一、样本集本样本集来源于某高中某班78位同学的一次月考的语文成绩。因为每位同学的成绩都是独立的随机变量,遂可以保证得到的观测值也是独立且随机的样本如下:grades=[131,131,127,123,126,129,116,114,115,116,123,122,118,121,126,121,126,121,111,119,124,124,121,116,114,116,116,118,112,109,114,116,116,118,112,109,114,110,114,110,113,117,113,121,105,127,110,105,111,112,104,103,130,102,118,101,112,109,107,94,107,106,105,101,85,95,97,99,83,87,82,79,99,90,78,86,75,66];二、数据分析1.中心位置(均值、中位数、众数)数据的中心位置是我们最容易想到的数据特征。借由中心位置,我们可以知道数据的一个平均情况,如果要对新数据进行预测,那么平均情况是非常直观地选择。数据的中心位置可分为均值(Mean),中位数(Median),众数(Mode)。其中均值和中位数用于定量的数据,众数用于定性的数据。均值:利用python编写求平均值的函数很容易得到本次样本的平均值得到本次样本均值为109.9中位数:113众数:1162.频数分析2.1频数分布直方图柱状图是以柱的高度来指代某种类型的频数,使用Matplotlib对成绩这一定性变量绘制柱状图的代码如下:这里我主要使用matplotlib.pyplotasplt上的bar()函数画出直方图。这里所使用的text和title方法是用来给图形加上标注和题目的。运行程序可得到如下频率分布直方图:这里我将数据分为八组:60~70,70~80,80~90,90~100,100~110,110~120,120~130,130~140;每组对应中点为:66,77.3,84.6,95.6,105.2,114.4,123.9,130.7每组对应频率:0.01,0.04,0.06,0.08,0.18,0.38,0.21,0.04从该频率直方图我们可以看出该班成绩主要分布在100~130区间,当然也存在130多的高分和60多的低分。总体成绩还算不错,低于均分的同学要继续努力。2.2相对频率折线图这里我主要使用matplotlib.pyplotasplt上的plot()函数画出折线图。程序代码如下:运行程序可得到如下折线图:通过折线图我们可以更加清楚的明白这个班级的成绩分布,高于一百分的同学占绝大多数,而低于一百分的也占有一定的比例。2.3箱须图中位数:113上四分位数:Q1=124下四分位数:Q2=105四分位数差:IQR=19此时可以绘制该班的箱须图进行成绩分析,这里使用Matplotlib中的boxplot绘制关于身高的箱形图,程序如下:运行程序后可以得到该班关于成绩的箱须图:从该箱须图也可以清楚的看出本班的成绩分布,以及中位数所在的位置所在。由于箱须图的主要目的用来比较,而这里只有一组数据,就不进行比较了。但是仍要注意的是在下边缘以外的异常值点,这些同学的成绩在本班处于垫底,应格外注意这些同学的学习习惯,积极引导和教育。2.4经验累积分布图总体的分布函数称为理论分布函数。经验累积分布函数利用样本来估计和推断总体的分布函数F(x).这里主要利用我利用python的Matplotlib编写了drawCumulativeHist函数进行经验累积分布图的绘制,程序如下:可得到如下的经验累积分布图从该经验累积图上可以直观的看出该样本服从正态分布。此时我们可以画出正态概率分布图进行验证。2.5正态概率分布图在经验累积分布图上连接上四分位点和下四分位点并延长,可以得到正态概率分布图,程序如下:运行程序得到正态概率分布图。可见画出的样本数据的图成线性,故该组数据服从正态分布。三、结论通过以上种种方法对该组样本进行分析,我们发现改组样本数据服从正态分布。该班的成绩分布主要集中在100~130区间,其中不乏高分但也有低于边缘值的异常点。总体来说该班成绩较好,但要注意对低分段同学进行积极的引导鼓励。四.总结描述性统计是容易操作,直观简洁的数据分析手段。我们组通过python进行对本组数据的画图分析,学习并掌握了Matplotlib的一些画图的方法。在进行本次实验的过程中由于初次使用python遇到了诸多困难,但通过查阅相关资料我们掌握了python的一些基础语法和画图方法,收益颇多。