人工智能和机器学习--PPT03-Python库简介.pdf
《人工智能和机器学习--PPT03-Python库简介.pdf》由会员分享,可在线阅读,更多相关《人工智能和机器学习--PPT03-Python库简介.pdf(65页珍藏版)》请在咨信网上搜索。
1、Python库简介王秋月中国人民大学信息学院几个相关的库 Numpy:高效地处理高维数组;高效的数学函数 Quickstart tutorial:https:/docs.scipy.org/doc/numpy/user/quickstart.html A Visual Intro to NumPy and Data Representation:http:/jalammar.github.io/visual-numpy/Matplotlib:可视化,绘制2D或3D图形 Pyplot tutorial:https:/matplotlib.org/users/pyplot_tutorial.htm
2、l Pandas:统计与数学分析 10 Minutes to pandas:http:/pandas.pydata.org/pandas-docs/stable/getting_started/10min.html Scikit-learn:机器学习 https:/scikit-learn.org/stable/documentation.htmlNumpy Numpy(Numerical Python extensions)是一个第三方的Python包,用于科学计算,前身是1995年就开始开发的一个用于数组运算的库 极大地简化了向量和矩阵的操作处理,是一些主力软件包(如scikit-lear
3、n、Scipy、pandas和tensorflow)架构的基础部分。ndarray数据类型 Numpy提供了一种新的数据结构:ndarray(n维数组,n-dimensional array)不同于列表和元组,数组只能存放相同类相同类型型的对象(如全部整型或全部浮点型)这使得在数组上的一些运算远远快于在列表上的相同运算;另外,数组占用更小的存储 数组强有力地扩展了列表的索引机制创建ndarraynp.array(2,3,6,7)array(2,3,6,7)np.array(2,3,6,7.)array(2.,3.,6.,7.)np.array(2,3,6,7+1j)array(2.+0.j,3
4、.+0.j,6.+0.j,7.+1.j)首先导入Numpy库 然后开始创建n维数组import numpy as np创建等差数列的数组 arange(start,stop,step,dtype=None)linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)np.arange(5)array(0,1,2,3,4)np.arange(10,100,20,dtype=float)array(10.,30.,50.,70.,90.)np.linspace(0.,2.5,5)array(0.,0.625,1.25,1.87
5、5,2.5)from numpy import pi x=np.linspace(0,2*pi,100)#用于在多个点执行某函数 f=np.sin(x)多维数组表示的矩阵a=np.array(1,2,3,4,5,6)aarray(1,2,3,4,5,6)a.shape#行数和列数(2,3)a.ndim#维数2a.size#元素数6改变形状import numpy as npa=np.arange(0,20,1)#一维数组b=a.reshape(4,5)#4行,5列c=a.reshape(20,1)#2维d=a.reshape(-1,4)#-1:自动决定行数a.shape=(4,5)#改变a的形
6、状形状(N,),(N,1)和(1,N)不同形状(N,):数组是一维的形状(N,1):数组是二维的,N行一列形状(1,N):数组是二维的,一行N列import numpy as npa=np.array(1,2,3,4,5)#一维数组b=a.copy()c1=np.dot(np.transpose(a),b)#转置对一维数组不起作用print(c1)c2=np.dot(a,np.transpose(b)#转置也可以写成b.Tprint(c2)ax=np.reshape(a,(5,1)bx=np.reshape(b,(1,5)c=np.dot(ax,bx)print(c)用相同元素填充数组np.z
7、eros(3)array(0.,0.,0.)np.zeros(2,2),complex)array(0.+0.j,0.+0.j,0.+0.j,0.+0.j)np.ones(2,3)array(1.,1.,1.,1.,1.,1.)np.full(2,2),7)array(7,7,7,7)用随机数填充数组 rand:0到1之间0,1)均匀分布的随机数 randn:服从均值为0,方差为1的标准正态(高斯)分布的随机数 也有其他标准概率分布的随机数np.random.rand(2,4)array(0.94672374,0.0383632,0.12738539,0.21592466,0.49394559
8、,0.2216863,0.3053351,0.51381235)np.random.randn(2,4)array(1.05383548,-1.2142876,-0.83458293,0.53291161,0.08311765,0.14007751,-0.06647882,1.09115942)一维数组索引与切片 start:stop的索引形式可用于从数组中抽取片段(从start位置开始直到stop位置但不包括stop)a=np.array(0,1,2,3,4)a1:3array(1,2)a:3array(0,1,2)a1:array(1,2,3,4)a1:-1array(1,2,3)一维数组
9、索引与切片整个数组:a或者a:想取出间隔的元素,可以在第二个冒号之后说明第三个数(步长):步长-1,可用于反转一个数组:a=np.array(0,1,2,3,4)a:array(0,1,2,3,4)a:2array(0,2,4)a1:4:2array(1,3)a:-1array(4,3,2,1,0)二维数组索引 多维数组的索引是整数元组:a=np.arange(12);a.shape=(3,4);aarray(0,1,2,3,4,5,6,7,8,9,10,11)a1,26a1,-17二维数组切片:单行单列a=np.arange(12);a.shape=(3,4);aarray(0,1,2,3,
10、4,5,6,7,8,9,10,11)a:,1array(1,5,9)a2,:array(8,9,10,11)a126a2array(8,9,10,11)和列表类似数组索引a0,3:5array(3,4)a4:,4:array(44,45,54,55)a:,2array(2,12,22,32,42,52)a2:2,:2array(20,22,2440,42,44)0 1 2 3 4 510 11 12 13 14 1520 21 22 23 24 2530 31 32 33 34 3540 41 42 43 44 4550 51 52 53 54 55拷贝与视图 标准列表的一个切片是它的一个拷贝
11、拷贝 Numpy数组的一个切片是数组上的一个视图视图,切片数组和原始数组都引用的是同一块内存区域。因而,当改变视图内容时,原始数组的内容也被同样改变了:a=np.arange(5);aarray(0,1,2,3,4)b=a2:;barray(2,3,4)b0=100;barray(100,3,4)aarray(0,1,100,3,4)拷贝与视图 为了避免改变原数组,可以拷贝切片:a=np.arange(5);aarray(0,1,2,3,4)b=a2:.copy();barray(2,3,4)b0=100;barray(100,3,4)aarray(0,1,2,3,4)数组计算 基本的算术运算
12、都作用在数组的元素级别import numpy as npx=np.array(1,2,3,4,dtype=np.float64)y=np.array(5,6,7,8,dtype=np.float64)print(x+y)print(np.add(x,y)print(x-y)print(np.subtract(x,y)print(x*y)print(np.multiply(x,y)print(x/y)print(np.divide(x,y)print(np.sqrt(x)矩阵乘法 矩阵乘法是使用dot函数实现的:dot函数也可用于矩阵和向量的乘法:A=np.array(1,2,3,4)np.d
13、ot(A,A)array(7,10,15,22)Aarray(1,2,3,4)x=np.array(10,20)np.dot(A,x)#等价于A.dot(x)array(50,110)np.dot(x,A)#等价于x.dot(A)array(70,100)更高效的数学函数 Numpy中包含许多常用的数学函数,例如:np.log,np.maximum,np.sin,np.exp,np.abs等等(详见:https:/docs.scipy.org/doc/numpy/reference/routines.math.html)大多数情况下,Numpy中的函数比math库中类似的函数更高效,尤其是处理
14、大规模数据时import numpy as npx=np.array(1,2,3,4)print(np.sum(x)#Compute sum of all elements;print(np.sum(x,axis=0)#Compute sum of each column;print(np.sum(x,axis=1)#Compute sum of each row;保存数组到文件 savetxt()函数将一个数组保存到一个文本文件中:其他格式的文件也可以(参见文档)save()函数将一个数组存成一个Numpy的“.npy”格式的二进制文件:生成一个二进制文件myfile.npy包含数组a,之后
15、可以使用np.load()函数读入内存a=np.linspace(0,1,12);a.shape=(3,4);aarray(0.,0.09090909,0.18181818,0.27272727,0.36363636,0.45454545,0.54545455,0.63636364,0.72727273,0.81818182,0.90909091,1.)np.savetxt(“myfile.txt”,a)np.save(“myfile”,a)从文本文件读入数组 loadtxt()函数把一个存成文本文件的数组读入内存 缺省地,该函数假设列是用空白符分隔的。可以通过修改可选的参数来改变此假设。#开
16、头的行被忽略。示例文本文件data.txt:#YearMin temp.Max temp.1990-1.525.31991-3.221.2table=np.loadtxt(“data.txt”)tablearray(1.99000000e+03,-1.50000000e+00,2.53000000e+01,1.99100000e+03,-3.20000000e+00,2.12000000e+01)Matplotlib Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表 因为在函数的设计上参考了MATLAB,所以叫做Matplot
17、lib 首次发表于2007年,是为了可视化癫痫病人的脑皮层电图相关的信号而研发的,原作者John D.Hunter博士是一名神经生物学家最简单的图表import matplotlib.pyplot as pltplt.plot(1,2,3,4,1,4,9,16,ro)plt.axis(0,6,0,20)plt.show()一张图表中多个函数(1)import numpy as npimport matplotlib.pyplot as pltt=np.arange(0.,5.,0.2)plt.plot(t,t,r-,t,t*2,bs,t,t*3,g)plt.show()设置线条属性使用键值对参
18、数:使用Line2D类对象的属性设置方法:使用setp()命令:plt.plot(x,y,linewidth=2.0)line,=plt.plot(x,y,-)line.set_antialiased(False)#turn off antialiasinglines=plt.plot(x1,y1,x2,y2)#use keyword argsplt.setp(lines,color=r,linewidth=2.0)#or MATLAB style string value pairsplt.setp(lines,color,r,linewidth,2.0)一张图表中多个函数(2)import
19、 numpy as npimport matplotlib.pyplot as plt#Compute the x and y coordinates for points on sine and cosine curvesx=np.arange(0,3*np.pi,0.1)y_sin=np.sin(x)y_cos=np.cos(x)#Plot the points using matplotlibplt.plot(x,y_sin)plt.plot(x,y_cos)plt.xlabel(x axis label)plt.ylabel(y axis label)plt.title(Sine an
20、d Cosine)plt.legend(Sine,Cosine)plt.show()多张图表:子图表import numpy as npimport matplotlib.pyplot as pltdef f(t):return np.exp(-t)*np.cos(2*np.pi*t)t1=np.arange(0.0,5.0,0.1)t2=np.arange(0.0,5.0,0.02)plt.figure(1)plt.subplot(211)plt.plot(t1,f(t1),bo,t2,f(t2),k)plt.subplot(212)plt.plot(t2,np.cos(2*np.pi*t2
21、),r-)plt.show()多张图表:子图表绘制分类变量的图表names=group_a,group_b,group_cvalues=1,10,100plt.figure(1,figsize=(9,3)plt.subplot(131)plt.bar(names,values)plt.subplot(132)plt.scatter(names,values)plt.subplot(133)plt.plot(names,values)plt.suptitle(Categorical Plotting)plt.show()绘制分类变量的图表添加文本import numpy as npimport
22、matplotlib.pyplot as pltmu,sigma=100,15x=mu+sigma*np.random.randn(10000)#the histogram of the datan,bins,patches=plt.hist(x,50,density=1,facecolor=g,alpha=0.75)plt.xlabel(Smarts)plt.ylabel(Probability)plt.title(Histogram of IQ)plt.text(60,.025,r$mu=100,sigma=15$)plt.axis(40,160,0,0.03)plt.grid(True)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能 机器 学习 PPT03 Python 简介
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。