书签 分享 收藏 举报 版权申诉 / 78
上传文档赚钱

类型数据科学导论课件第二章Python入门.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:4105529
  • 上传时间:2022-11-11
  • 格式:PPTX
  • 页数:78
  • 大小:1.90MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《数据科学导论课件第二章Python入门.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据 科学 导论 课件 第二 Python 入门
    资源描述:

    1、1数据科学导论第二章 Python 入门2主要内容一 Python 简介二 安装和运行三 试试Python 编程四 Numpy 模块五 Pandas 模块六 Matplotlib 模块3一 Python 简介Python 简介45Python和R的异同管理和运行模型 R有统一的志愿团队管理,语法相对一致,安装程序包很简单 Python 是一个通用软件,没有统一团队管理,针对不同Python 版本的模块非常多.不同的计算机操作系统,不同版本的Python,不同的模块,安装过程多种多样,相对复杂.统计模型 R 主要用于数据分析,有统计背景的人员会更加偏爱.Python 的统计模型不如R 那么多,但

    2、从其基本语法所产生的成千上万的模块使得它可以做几乎任何想做的事情.6二 Python安装和运行安装及开始体验在多种运行平台中,建议使用Anaconda 下载Python Navigator 4,以获得Jupyter,RStudio,VisualStudio Code等软件界面,然后运行Python程序.Anaconda 运行优势:包含常用的模块Numpy,Pandas,Matplotlib,而且安装其他一些模块(比如Sklearn)比较方便.本书中Python 的介绍是基于Anaconda 的notebook 运行Python3 的实践.7Anaconda的安装 1.进入Anaconda官网下

    3、载:https:/ 2.下载完直接双击运行即可,注意环境变量设置页即可.9Anaconda测试 安装完Anaconda 后,就可以在开始菜单栏中运行Jupyter Notebook 了.也可以通过终端键入cd Python Work 到达工作目录,再键入jupyter notebook 在默认浏览器产生一个工作界面(称为“Home”).10Jupyter Notebook11创建一个新的.ipynb文件 点击右上角New 并选择Python3,则产生一个没有名字的(默认是Untitled)以.ipynb 为扩展名的文件.出现In :标记,在其右边的框中输入代码,然后得到的结果就出现在代码(代码

    4、所在的框称为“Cell”)下面的地方.12输入和输出测试 在Cell中 输入 3*Python is easy!Ctrl+Enter 输出 Python is easy!Python is easy!Python is easy!一个Cell 中,可以一行输入几个简单(不分行的)命令,用分号分隔.要注意,Python 和R 的代码一样是分大小写的.Python 与R 的注释一样,在#号后面的符号不会当成代码执行.13查看和修改工作目录 import os print(os.getcwd()#查看目录 os.chdir(D:/Python work)#Windows系统中改变工作目录 os.ch

    5、dir(/users/Python work)#OSx系统中改变工作目录14查看文件路径 import os from os.path import join for(dirname,dirs,files)in os.walk(/users/work/):for filename in files:if filename.endswith(.csv):thefile=os.path.join(dirname,filename)print(thefile,os.path.getsize(thefile)1516三 试试Python 编程试试Python 编程 Python 中的向量、矩阵、列表或

    6、其他多元素对象的下标是从0 开始,请输入下面代码并看输出:y=1,2,1,2,3,ss,swa,stick y2,y2:2,y11:x=A poet can survive everything but a misprint.x:10+x10:20+x20:30+x30:40+x40:17首尾连接的下标区间append,extend 和pop x=1,2,3,5,7,Oscar Wilde y=save,the world x.append(y);print(x)x.extend(y);print(x)x.pop();print(x)x.pop(2);print(x)18关于remove 和d

    7、el print(2*0.5,2.0*(1/2),2*(1/2.)print(4/3,4./3)x=0,1,4,23 x.remove(4);print(x)del x0;print(x,type(x)19关于tuple x=(0,12,345,67,8,9,we,they)print(type(x),x-4:-1)x=range(2,11,2)print(x=,list(x)=.format(x,list(x)print(type of x is.format(type(x)20dictionary(字典)类型 data=age:34,Children:1,2,1:apple,zip:NA

    8、print(type(data)print(age=,dataage)dataage=99 dataname=abc print(data)21集合运算x=set(we,you,he,I,they);y=set(I,we,us)x.add(all);print(x,type(x),len(x)set.add(x,none);print(x)print(set.difference(x,y)=,set.difference(x,y)print(set.union(x,y)=,set.union(x,y)print(set.intersection(x,y)=,set.intersection(x

    9、,y)x.remove(none);print(x=,x,n,y=,y)22Id 函数 x=1;y=x;print(x,y,id(x),id(y)x=2.0;print(x,y,id(x),id(y)x=1,2,3;y=x;y0=10 print(x,y,id(x),id(y)x=1,2,3;y=x:print(x,y,id(x)=id(y),id(x0)=id(y0)print(id(x1)=id(y1),id(x2)=id(y2)23函数的简单定义 def f(x):return x*2-x g=lambda x:max(x*2,x*3)print(list(map(lambda x:x*

    10、2+1-abs(x),1.2,5.7,23.6,6)print(f(10),g(-3.4)print(list(range(-10,10,2),n,list(filter(lambda x:x0,range(-10,10,2)24注意函数中的符号和缩进25在python 中,函数,类,条件和循环等语句后面有冒号“:”.而随后的行,要缩进确定数目的若干空格,和R 中的花括号作用类似.循环和条件的例子#例1 for line in open(UN.txt):for word in line.split():if word.endswith(er):print(word)26循环和条件的例子#例2w

    11、ith open(UN.txt)as f:lines=f.readlines()lines1:20#例3x=Just a wordfor i in x:print(i)27循环和条件的例子#例例4 for i in x.split():print(i,len(i)#例例5 for i in-1,4,2,27,-34:if i0 and i15:print(i,i*2+i/.5)elif i5:print(abs(i)else:print(4.5*i)28关于listx=range(5)y=for i in range(len(x):if float(i/2)=i/2:y.append(xi*2

    12、)print(y,y)z=xi*2 for i in range(len(x)if float(i/2)=i/2print(z,z)2930四 Numpy 模块Numpy 模块 Numpy 是高性能科学计算和数据分析的基础包;它是pandas等其他工具的基础。内容包括:强大的N维数组对象Array;比较成熟的函数库;用于整合C/C+和Fortran代码的工具包;实用的线性代数、傅里叶变换和随机数生成函数等。31Numpy 模块 导入模块:import numpy,凡是该模块的命令(比如array)都要加上 numpy 成为numpy.array.简写形式:输入时敲入 import numpy

    13、as np numpy.array np.array.32数据文件存取 import numpy as np x=np.random.randn(25,5)np.savetxt(tabs.txt,x)#存成制表符分隔的文件 np.savetxt(commas.csv,x,delimiter=,)#存成逗号分隔的文件(如csv)u=np.loadtxt(commas.csv,delimiter=,)#读取逗号分隔文件 v=np.loadtxt(tabs.txt)#读取逗号分隔文件33矩阵和数组import numpy as npy=np.array(1,4,7,2,5,8,3,6,9,10,10

    14、0,1000)print(y)print(np.shape(y)print(type(y),y.dtype)print(y1,0,0,y0,1,:)34整形和浮点型数组(向量)运算import numpy as npu=0,1,2;v=5,2,7u=np.array(u);v=np.array(v)print(u.shape,v.shape)print(u+v,u/v,np.dot(u,v)u=0.0,1,2;v=5,2,7u=np.array(u);v=np.array(v);print(u+v,u/v);print(v/3,v/3.,v/float(3),(v-2.5)*2)35向量和矩阵

    15、的运算x=np.arange(3,5,.5)y=np.arange(4)print(x,y,x+y,x*y)#向量计算向量计算print(x:,np.newaxis.dot(ynp.newaxis,:)print(np.shape(x),np.shape(y)print(np.shape(x:,np.newaxis),np.shape(ynp.newaxis,:)print(np.dot(x.reshape(4,1),y.reshape(1,4)x.shape=4,1;y.shape=1,436向量和矩阵的运算 print(x.dot(y);print(np.dot(x,y)print(np.

    16、dot(x.T,y.T),x.T.dot(y.T)#x.T是是x的转的转置置 print(x.reshape(2,2).dot(np.reshape(y,(2,2)x=2,3,7,5 z=np.asmatrix(x)print(z,type(z);print(z.transpose()*z)print(z.T*z=z.T.dot(z),z.transpose()*z=z.T*z)print(np.ndim(z),z.shape)37按行或列合并矩阵 x=np.array(1.0,2.0,3.0,4.0)y=np.array(5.0,6.0,7.0,8.0)z=np.concatenate(x,

    17、y),axis=0)z1=np.concatenate(x,y),axis=1)print(z,n,z1,n,z.transpose()*z1)z=np.vstack(x,y)#Same as z=concatenate(x,y),axis=0)z1=np.hstack(x,y);print(z,n,z1)38数组赋值 print(np.ones(2,2,3),np.zeros(2,2,3),np.empty(2,2,3)x=np.random.randn(20).reshape(2,2,5);print(x)x=np.random.randn(20).reshape(4,5)x0,:=np.

    18、pi;print(x)x0:2,0:2=0;print(x)x:,4=np.arange(4);print(x)x1:3,2:4=np.array(1,2,3,4);print(x)39行列序列的定义 这里np.c_0:10:2 是从0 到10,间隔2 的列(c)序列,而np.r_1:5:4j 是从1到5,等间隔地分为4 行的(r)序列.print(np.c_0:10:2,np.c_0:10:2.shape)print(np.c_1:5:4j,np.c_1:5:4j.shape)print(np.r_1:5:4j,np.r_1:5:4j.shape)40抽取数组(矩阵)的子数组print(np

    19、.ogrid0:3,0:2:.5,n,np.mgrid0:3,0:2:.5)print(np.ogrid0:3:3j,0:2:5j,n,np.mgrid0:3:3j,0:2:5j)x=np.reshape(np.arange(25.0),(5,5)print(x=n,x)print(np.ix_(np.arange(2,4),0,1,2)=n,np.ix_(np.arange(2,4),0,1,2)41抽取数组(矩阵)的子数组print(ix_(2,3,0,1,2)=n,np.ix_(2,3,0,1,2)print(xnp.ix_(np.arange(2,4),0,1,2)=n,xnp.ix_

    20、(np.arange(2,4),0,1,2)print(xix_(3,0,1,4,2)=n,xnp.ix_(3,0,1,4,2)print(x2:4,:3=n,x2:4,:3)print(xix_(0,3,0,1,4)=n,xnp.ix_(0,3,0,1,4)42向量和数组的数学运算x=np.random.randn(3)print(np.round(x,2)=,np.round(x,4)=.format(np.round(x,2),np.round(x,4)print(np.around(np.pi,4)=,np.around(np.pi,4)print(np.around(x,3)=,np

    21、.around(x,3)print(x.round(3)=,np.floor(x)=.format(x.round(3),np.floor(x).43一些函数的操作 x=np.repeat(np.random.randn(3),(2)print(x)print(np.unique(x)y,ind=(np.unique(x,True)print(y=,ind=,xind=,x.flatind=.format(y,ind,xind,x.flatind)44一些函数的操作 x=np.arange(10.0)y=np.arange(5.0,15.0)print(np.in1d(x,y)=,np.in1

    22、d(x,y)print(np.intersect1d(x,y)=,np.intersect1d(x,y)print(np.union1d(x,y)=,np.union1d(x,y)45一些函数的操作 print(np.setdiff1d(x,y)=,np.setdiff1d(x,y)print(np.setxor1d(x,y)=,np.setxor1d(x,y)x=np.random.randn(4,2)print(x,n,n,np.sort(x,1),n,np.sort(x,axis=None)print(np.sort(x,0),np.sort(x,0)46一些函数的操作 print(x.

    23、sort(0),x.sort(axis=0)x=np.random.randn(3)x0=np.nan#赋缺失值赋缺失值 print(xnsum(x)=nnp.nansum(x)=.format(x,sum(x),np.nansum(x)print(np.nansum(x)/np.nanmax(x)=,np.nansum(x)/np.nanmax(x)47分割数组 x=np.reshape(np.arange(24),(4,6)y=np.array(np.vsplit(x,2)z=np.array(np.hsplit(x,3)print(x=ny=nz=.format(x,y,z)print(

    24、x.shape,y.shape,z.shape)print(np.delete(x,1,axis=0)#删除x第2行 print(np.delete(x,2,3,axis=1)#删除x第3,4列 print(x.flat:,x.flat:4)#把x变成向量48矩阵的对角线元素与对角线矩阵 x=np.array(10,2,7,3,5,4,45,76,100,30,2,0)#same as R y=np.diag(x)#对角线元素 print(x=ny=.format(x,y)print(np.diag(y)=n,np.diag(y)#由向量形成对角线方阵 print(np.triu(x)=n,n

    25、p.triu(x)#x上三角阵 print(np.tril(x)=n,np.tril(x)#x下三角阵49随机数的产生 print(np.random.randn(2,3)#随机标准正态2x3矩阵#给定均值矩阵和标准差矩阵的随机正态矩阵:print(np.random.normal(1,0,3,3,2,1,1,1,2,2,1,1)print(np.random.normal(2,3),(3,1)#均值为2,3标准差为3,1的2个随机正态数 print(np.random.uniform(2,3)#均匀U2,3随机数50随机数的产生 np.random.seed(1010)#随机种子 print

    26、(np.random.random(10)#10个随机数(0-1之间)print(np.random.randint(20,100)#20到100之间的随机整数 print(np.random.randint(20,100,10)#20到100之间的10个随机整数 print(np.random.choice(np.arange(-10,10,3)#从序列随机选一个 x=np.arange(10);np.random.shuffle(x);print(x)51线性代数运算 import numpy as np x=np.random.randn(3,4)print(x)u,s,v=np.lin

    27、alg.svd(x)#奇异值分解 Z=np.array(1,-2j,2j,5)print(Cholsky:,np.linalg.cholesky(Z)#Cholsky分解 print(x=nu=ndiag(s)=nv=.format (x,u,np.diag(s),v)print(np.linalg.cond(x)#条条件数件数52线性代数运算 x=np.random.randn(3,3)print(np.linalg.slogdet(x)#行列式的对数(及符号:1.为正-1.为负)print(np.linalg.det(x)#行列式 y=np.random.randn(3)print(np.

    28、linalg.solve(x,y)#解联立方程53线性代数运算 X=np.random.randn(100,2)y=np.random.randn(100)beta,SSR,rank,sv=np.linalg.lstsq(X,y,rcond=None)#最小二乘法最小二乘法 print(beta=nSSR=nrank=nsv=.format(beta,SSR,rank,sv)#cov(x)方阵的特征值问题解方阵的特征值问题解:va,ve=np.linalg.eig(np.cov(x)54线性代数运算 续 print(eigen value=neigen vectors=.format(va,v

    29、e)x=np.array(1,.5,.5,1)print(x inverse=,np.linalg.inv(x)#矩阵的逆矩阵的逆 x=np.asmatrix(x)print(x inverse=,np.asmatrix(x)*(-1)#注意使用注意使用*(-1)的限制的限制55线性代数运算 续 z=np.kron(np.eye(3),np.ones(2,2)#单位阵和全单位阵和全1矩阵的矩阵的Kronecker积积 print(z=,z.shape=.format(z,z.shape)print(trace(Z)=,rank(Z)=.format(np.trace(z),np.linalg.

    30、matrix_rank(z)56关于日期 import datetime as dt yr,mo,dd=2016,8,30 print(dt.date(yr,mo,dd)=,dt.date(yr,mo,dd)hr,mm,ss,ms=10,32,10,11 print(dt.time(hr,mm,ss,ms)=,dt.time(hr,mm,ss,ms)print(dt.datetime(yr,mo,dd,hr,mm,ss,ms)d1=dt.datetime(yr,mo,dd,hr,mm,ss,ms)d2=dt.datetime(yr+1,mo,dd,hr,mm,ss,ms)57关于日期 prin

    31、t(np.datetime64(2016-08-30T00,h)print(np.datetime64(2016-08-30T00,s)print(np.datetime64(2016-08-30T00,ms)print(np.datetime64(2016-08-30,W)#Upcase!dates=np.array(2016-09-01,2017-09-02,dtype=datetime64)print(dates)print(dates0)58关于日期 print(d2-d1,d2-d1)print(np.datetime64(2016)print(np.datetime64(2016-

    32、08)print(np.datetime64(2016-08-30)print(np.datetime64(2016-08-30T12:00)#Time print(np.datetime64(2016-08-30T12:00:01)print(np.datetime64(2016-08-30T12:00:01.123456789)#Nanoseconds5960五 Pandas 模块Pandas模块简介 Pandas模块是数据导入及整理的模块,模块是数据导入及整理的模块,是数据分析和建模的基础。是数据分析和建模的基础。最初由AQR Capital Management于2008年开发,属于P

    33、yData项目的一部分。Pandas名称来源:面板数据(panel data)和数据分析(data analysis)。Pandas模块的数据结构主要有两:模块的数据结构主要有两:Series(数组),Time-Series(时序数组),DataFrame(二维表格型数据),Panel(三维的数组)及更高维数组.61数据框产生和存储 import pandas as pd np.random.seed(1010)w=pd.DataFrame(np.random.randn(10,5),columns=X1,X2,X3,X4,Y)v=pd.DataFrame(np.random.randn(20

    34、,4),columns=X1,X2,X3,Y)w.to_csv(Test.csv,index=False)writer=pd.ExcelWriter(Test1.xlsx)v.to_excel(writer,sheet1,index=False)w.to_excel(writer,sheet2)62读入数据 W=pd.read_csv(Test.csv)V=pd.read_excel(Test1.xlsx,sheet2)U=pd.read_table(Test.csv,sep=,)print(V.head()=n,V.head()#头头5行行 print(U.head(2)=n,U.head(

    35、2)#头头2行行 print(U.tail(3)=n,U.tail(3)#最后最后3行行 print(U.size=nU.columns=.format(U.size,U.columns)U.describe()#简单汇总统计量简单汇总统计量63一个例子 diamonds=pd.read_csv(diamonds.csv)print(diamonds.head()print(diamonds.describe()print(diamonds.columns=,diamonds.columns)print(sample size=,len(diamonds)#样本量样本量 cut=diamond

    36、s.groupby(cut)#按照变量按照变量cut的水平分群的水平分群 print(cut.median()=n,cut.median()print(Cross table=n,pd.crosstab(diamonds.cut,diamonds.color)6465六 Matplotlib 模块Matplotlib 模块 Matplotlib 是 Python 中常用的图形框架.模块对比模块对比 numpy可以高效的处理数据、提供数组支持,是 pandas的基础,pandas则主要用于数据预处理和简单的数据探索.Matplotlib 模块的主要作用是作图,解决可视化问题66Matplotli

    37、b 模块 import matplotlib.pyplot as plt y=np.random.randn(100)plt.plot(y)plt.plot(y,g-)plt.title(Random number)plt.xlabel(Index)plt.ylabel(y)plt.show()67几张图形的例子 import scipy.stats as stats fig=plt.figure(figsize=(15,10)ax=fig.add_subplot(2,3,1)#2x3图形阵 y=50*np.exp(.0004+np.cumsum(.01*np.random.randn(100

    38、)plt.plot(y)plt.xlabel(time($tau$)plt.ylabel(Price,fontsize=16)plt.title(Random walk:$dln p_t=mu dt+sigma dW_t$,fontsize=16)68几张图形的例子 y=np.random.rand(5)x=np.arange(5)ax=fig.add_subplot(2,3,5)colors=#FF0000,#FFFF00,#00FF00,#00FFFF,#0000FF plt.barh(x,y,height=0.5,color=colors,edgecolor=#000000,linewi

    39、dth=5)ax.set_title(Bar plot)69几张图形的例子 y=np.random.rand(5)y=y/sum(y)yy .05=.05 ax=fig.add_subplot(2,3,3)plt.pie(y)ax.set_title(Pie plot)70几张图形的例子 z=np.random.randn(100,2)z:,1=0.5*z:,0+np.sqrt(0.5)*z:,1 x=z:,0 y=z:,1 ax=fig.add_subplot(2,3,4)plt.scatter(x,y)ax.set_title(Scatter plot)71几张图形的例子 ax=fig.a

    40、dd_subplot(2,3,2)x=np.random.randn(100)ax.hist(x,bins=30,label=Empirical)xlim=ax.get_xlim()ylim=ax.get_ylim()72几张图形的例子 pdfx=np.linspace(xlim0,xlim1,200)pdfy=stats.norm.pdf(pdfx)pdfy=pdfy/pdfy.max()*ylim1 plt.plot(pdfx,pdfy,r-,label=PDF)ax.set_ylim(ylim0,1.2*ylim1)plt.legend()plt.title(Histogram)73几张

    41、图形的例子 ax=fig.add_subplot(2,3,6)x=np.cumsum(np.random.randn(100,4),axis=0)plt.plot(x:,0,b-,label=Series 1)plt.plot(x:,1,g-.,label=Series 2)plt.plot(x:,2,r:,label=Series 3)74几张图形的例子 plt.plot(x:,3,h-,label=Series 4)plt.legend()plt.title(Random lines)plt.show()7576 本章的python代码本章代码.DS python codeDSchap2.ipynb7778谢谢敬请指正!

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:数据科学导论课件第二章Python入门.pptx
    链接地址:https://www.163wenku.com/p-4105529.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库