Python数据分析入门 - 正态分布

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

%matplotlib inline 
#matplotlib是最著名的Python图表绘制扩展库,它支持输出多种格式的图形图像,并且可以使用多种GUI界面库交互式地显示图表。使用%matplotlib命令可以将matplotlib的图表直接嵌入到Notebook之中,或者使用指定的界面库显示图表,它有一个参数指定matplotlib图表的显示方式。inline表示将图表嵌入到Notebook中。
%config InlineBackend.figure_format= 'retina'
#内嵌图表的输出格式缺省为PNG,可以通过%config命令修改这个配置。%config命令可以配置IPython中的各个可配置对象,其中InlineBackend对象为matplotlib输出内嵌图表时所使用的对象,我们配置它的figure_format="svg",这样将内嵌图表的输出格式修改为SVG。
%magic
#查询magic command魔法命令的方法
#IPython提供了许多魔法命令,使得在IPython环境中的操作更加得心应手。魔法命令都以%或者%%开头,以%开头的成为行命令,%%开头的称为单元命令。行命令只对命令所在的行有效,而单元命令则必须出现在单元的第一行,对整个单元的代码进行处理。
#参考 http://hyry.dip.jp/tech/book/page/scipynew/ipython-200-notebook-magic.html 
stakes_data = pd.read_csv('stakes.csv')
#此处导入正确,没有遇到小笼包(李佳)提到的csv文件格式无法识别的问题,若遇到,可参考http://www.jianshu.com/p/296ae7538d1f  
stakes_data.head(5) #看看前五个数据
len(stakes_data) #看看数据集的大小
stakes_data.shape #或者利用T1里提到的办法查询数据的维度
time = stakes_data['time'] #如果是多维度,可以提取某列数据,(行怎么办?)
slice1 = stakes_data[0:3] #可以对行进行切片
#参考此pandas教程 http://www.cnblogs.com/chaosimple/p/4153083.html
#pandas里面的数据框DataFrame数据类型,其实和R语言里面的差不多。访问某一列可以通过b['state']和b.state这两种方法进行,但是输出的pandas里面的Series这种数据类型,因此b['state'].index()返回Index([0,1], dtype=object)。
slice1
Python数据分析入门 - 正态分布_第1张图片
slice1
row = stakes_data.loc[1:3,:]  #实现查询某行,或按行查询
# 关于pandas库里面的行列操作 参考 http://blog.csdn.net/xiaodongxiexie/article/details/53108959
row
Python数据分析入门 - 正态分布_第2张图片
row
mean = time.mean()  #求样本均值
mean
sd = time.std() #求样本标准差
sd
max = time.max() #求样本极大值以便确定范围上限
max
min = time.min() #求样本极小值以便确定范围下限
min
def normfun(x,mu,sigma):
   pdf = np.exp(-((x-mu)**2)/(2*sigma**2))/(sigma*np.sqrt(2*np.pi))
   return pdf
#定义normfun的概率分布密度函数如上,即定义器为以x为,mu为期望,sigma为标准差的正态分布。
#利用numpy中的arange函数构造最小145,最大155,步长为0.1的等差数组 
x = np.arange(145,155,0.1)
y = normfun(x,mean,sd)
plt.plot(x,y) #看一眼正态图
Python数据分析入门 - 正态分布_第3张图片
正态图
plt.hist(time, bins = 6,rwidth=0.9,normed=True) #画time数据的直方图,nomred=True则显示其占比(概率密度)。 参考http://www.cnblogs.com/python-life/articles/6084059.html 
plt.rcParams["font.family"] = "SimHei" #修改字体
plt.title(u'赛马时间正态分布图') #直方图命名后拿出来看看
plt.xlabel(u'时间') 
plt.ylabel(u'占比率')
Python数据分析入门 - 正态分布_第4张图片
直方图
plt.hist(time, bins = 6,rwidth=0.9,normed=True) #画time数据的直方图
plt.rcParams["font.family"] = "SimHei" #修改字体
plt.plot(x,y) #把x,y构造的正态曲线放进来
plt.title(u'赛马时间正态分布图') #直方图命名后拿出来看看
plt.xlabel(u'时间')
plt.ylabel(u'占比率')
Python数据分析入门 - 正态分布_第5张图片
合并

这次作业里各个包的很多基础知识存在问题,查了很多链接也放在文内了。构造pdf的时候用到arange构造了一个等差数列这一点不太理解,回头再思考一下。

数据上,样本数据还是蛮符合正态分布的,正态分布是经典统计里面的基石,回归分析都是围绕着它来的,基于pdf的很多证明,比如F分布,Chi分布和正态分布的关系都是原来推倒过的,现在忘了不少,有空再捡起来吧,目前还是黑箱状态比较好,囫囵吞枣,用得上再说,不必纠结那么细。

你可能感兴趣的:(Python数据分析入门 - 正态分布)