Python科学计算库—Scipy
一、Scipy 入门
1.1、Scipy 简介及安装
官网:http://www.scipy.org/SciPy 安装:在C:\Python27\Scripts下打开cmd执行: 执行:pip install scipy
1.2、安装Anaconda及环境搭建(举例演示)
创建环境:conda create -n env_name python=3.6 示例: conda create -n Py_36 python=3.6 #创建名为Py_367的环境 列出所有环境:conda info -e 进入环境: source activate Py_36 (OSX/LINUX系统) activate Py_36 (windows系统)
1.3、jupyter 安装
jupyter简介:jupyter(Jupyter Notebook)是一个交互式笔记本 支持运行40多种编程语言 数据清理和转换,数值模拟,统计建模,机器学习等 jupyter 安装:conda install jupyter notebook 启动 jupyter:激活相应环境 在控制台执行 :jupyter notebook notebook服务器运行地址:http://localhost:8888 新建(notebook,文本文件,文件夹) 关闭notebook:ctrl+c执行两次 jupyter notebook 使用: 快捷键:shift+Enter 运行本单元,选中下个单元 Ctrl+Enter 运行本单元,在其下方插入新单元 Y 单元进入代码状态 M 单元进入markdown状态 A 在上方插入新单元 B 在下方插入新单元 X 剪切选中单元 Shift+V 在上方粘贴单元
1.4、scipy的’hello word’
需求:将一个多维数组保存a.mat文件,后加载该mat文件,获取内容并打印 步骤1:导入scipy需要的模块 from scipy import io #(需要使用的模块) 步骤2:利用savemat保存数据 io.savemat(file_name,mdict) io.savemat('a.mat',{''array:a}) 步骤3:利用 loadmat载入数据 io.loadmat(file_name) data = io.loadmat('a.mat')
二、利用Scipy实现统计功能
需求:用Scipy的
scipy.stats
中的统计函数分析随机数stats提供了产生连续性分布的函数
均匀分布(uniform)
x=stats.uniform.rvs(size = 20)
生成20个[0,1]均匀分布随机数
-正态分布(norm)
x=stats.norm.rvs(size = 20)
生成20个正态分布随机数
-贝塔分布(beta)
x=stats.beta.rvs(size=20,a=3,b=4)
生成20个服从参数a=3,b=4贝塔分布随机数
-离散分布
-伯努利分布(Bernoulli)
-几何分布(geom)
-泊松分布(poisson)
x=stats.poisson.rvs(0.6,loc=0,size = 20)
生成20个服从泊松分布随机数
三、计算随机数均值和标准差
stats.norm.fit
:利用正态分布去拟合生成的数据,得到其均值和标准差
四、计算随机数的偏度
1.概念:
偏度(skewness)描述的是概率分布的偏度(非对称)程度。
有两个返回值,第二个为p-value,即数据集服从正态分布的概率(0~1)2 利用
stats.skewtest()
计算偏度
五、计算随机数的峰度
1 概念:峰度(
kurtosis
)-描述的是概率分布曲线陡峭程度
2 利用 stats.kurtosis()
计算峰度
3 正态分布峰度值为3
,excess_k
为0
低阔峰(platykurtic) 相对于正态分布来说更扁平 excess_k<0
高狭峰(leptokurtic) 相对于正态分布来说更陡峭 excess_k>0
六、正态分布程度检验
1 正态性检验(normality test),同样返回两个值,第二个返回p-values
2 利用 检验 stats.normaltest()
一般情况 pvalue>0.05
表示服从正态分布
七、计算数据所在区域中某一百分比处的数值
1 利用scoreatpercentile 计算在某一百分比位置的数值
格式:scoreatpercentile
(数据集、百分比)
stats.scoreatpercentile(name_arr,percent)
2 示例:求出95%所在位置的数值
num = stats.scoreatpercentile(arr,95)
print num
八、从某数值出发找到对应的百分比
利用
percentileofscore
计算在某数值对应的百分比
格式:percentileofscore(数据集,数值)
示例:indexPercent = stats.percentileofscore(arr,1)
九、直方图显示
import matplotlib.pyplot as plt
在Anaconda环境下(py36)C:\Users\lenovo>导入:conda install matplotlib
plt.hist(arr)
#设置直方图
plt.show()
#显示图
九、综合练习
1 求出考试分数的以下值:
2 步骤1: 创建两个二维数组:[分数,出现次数]
步骤2:创建函数,将传入的多维数组扁平化->变成一维数组
步骤3:创建函数,根据传入数组,对其进行统计
步骤4:创建函数,做一个简单的箱线图/柱形图