ImageVerifierCode 换一换
格式:PPT , 页数:470 ,大小:38.42MB ,
资源ID:12611457      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/12611457.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(-Python基础ppt课件.ppt)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

-Python基础ppt课件.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Python,与大数据分析,对外经贸大学信息学院,大数据专业,Python,教研组,Python,与大数据分析,Python,基础,(,5,次课),网络爬虫,(,2,次课),期中随堂上机考试,(,1,次课),金融数据分析案例,(,2,次课),文本数据分析案例,(,3,次课),图像数据分析,(,3,次课),自我介绍,刘宁宁,对外经济贸易大学信息学院讲师,。,专注于对图像分类,(Visual Object Classification),、文本处理,(Natural Language Processing),、模式

2、识别,(Pattern Recognition),等方面的研究。,6.00,为什么大数据首选是,Python,呢?,第一部分,初识,Python,第二部分,基本概念,变量、注释、,print,函数、数据类型、算术运算符、类型转换,第三部分,数据的容器,列表、元组、字典、集合,第四部分,控制结构与推导式,第五部分,数据的读写操作,第六部分,错误类型和异常捕获,第七部分,字符编码问题处理,第八部分,编写函数处理数据,第九部分,变量作用域,第十部分,Python,中的模块,第十一部分,Python,中的类,第十五部分,Numpy,基础知识,第十六部分,Pandas,数据分析,第十三部分,正则表达式,

3、第十四部分,日期数据的处理,第一部分,初识,Python,Python,语言的诞生和发展历史,Python,语言的特点,运行环境及安装,Python,语言的诞生和发展历史,Python,语言是一种解释型、面向对象、动态数据类型的高级程序设计语言,Python,语言是数据分析师的首选数据分析语言,也是智能硬件的首选语言,数据分析,创建复杂的,Web,应用程序,游戏开发,动画电影效果,网站开发,智能硬件开发,Python,与蟒蛇有关?,Guido,van,Rossum,于,1989,年在荷兰国家数学和计算机科学研究所设计出来的,Python,语言的诞生,BBC,“Monty Pythons Fly

4、ing Circus”,(,蒙提,派森的飞行马戏团,),Guido van Rossum,(人称“龟叔”),Python 2.0,版本于,2000,年,10,月发布。,在,2008,年,12,月,,Python 3.0,发布,此版本没有完全兼容之前的,Python,2.0,Python,也因此分为了,Python 3.5,派系和,Python 2.7,派系两大阵营,Python,语言的发展历史,TIOBE,INDEX:,编程语言流行程度排行榜,Python,语言的,TIOBE,INDEX,Python,曾在,2007,年和,2010,年两度被,TIOBE,排行榜评为“年度编程语言”,现已成为了

5、第五大流行编程语言(截至,2016,年,10,月),Python,语言的,TIOBE,INDEX,Python,语言的特点,优点一:优雅、简单、明确,(减少花哨、晦涩或以“炫技”为目的的代码),让数据分析师们摆脱了程序本身语法规则的泥潭,更快的进行数据分析,C,语言,Python,语言,优点二:强大的标准库,完善的基础代码库,覆盖了网络通信、文件处理、数据库接口、图形系统、,XML,处理等大量内容,被形象地称为“内置电池”(,batteries included,),Python,使用者,“调包侠”,优点三:良好的可扩展性,大量的第三方模块,覆盖了科学计算、,Web,开发、数据接口、图形系统等

6、众多领域,开发的代码通过很好的封装,也可以作为第三方模块给别人使用。如,Pandas,、,Numpy,、,Seaborn,、,Scikit-learn,等等,优点四:免费、开源,缺点一:运行速度慢,缺点二:加密难,缺点三:缩进规则,缺点四:多线程灾难,Python,语言的缺点,Python,语言与,Java,动态类型和静态类型,Python,中一切皆对象,括号与缩进,应用领域,Python,语言与,R,语言,机器学习的一把利器,可读性强,便于上手,灵活性强:可与其他如,Web,应用程序进行整合,以统计推断为导向,数据分析之外的领域有所限制,包凌乱且一致性较差,Python,语言与,R,语言的应

7、用场景对比,网络爬虫,连接数据库,内容管理系统,API,构建,统计分析,互动式图标,/,面板,运行环境及安装,推荐使用,Anaconda,进行,Python,安装、环境配置及工具包管理,Ipython,qtconsole,PyCharm,Jupyter,Notebook,Spyder,IPython,鼓励一种“执行,-,探索”(,execute-explore,)的工作模式,输入代码之后,按下回车,便会立即得到代码运行结果,交互式计算和开发环境:,IPython,交互式计算和开发环境:,IPython,输入“,?”,获得,IPython,的详细介绍,输入“,%quickref”,获得,IPyt

8、hon,的快速参考,交互式计算和开发环境:,IPython,输入“,help()”,查看,IPython,的帮助文档,使用内省“,pandas?”,查看,Pandas,的帮助文档,基于,Qt,框架的,GUI,控制台,qtconsole,为终端应用程序提供诸如内嵌图片、多行编辑、语法高亮之类的富文本编辑功能,启动命令:,jupyter,qtconsole,缺点:功能少、用户友好性不够,Jupyter,Notebook,Julia+Python+R,=,Jupyter,基于,Web,技术的交互式计算文档格式,支持,Markdown,和,Latex,语法,支持代码运行、文本输入、数学公式编辑、内嵌式

9、画图和其他如图片文件的插入,是一个对代码友好的笔记本,Jupyter,Notebook,Jupyter,支持包含,R,kernel,(支持,R,语言),启动命令:,jupyter,notebook,Jupyter,Notebook,推荐使用,Jupyter Notebook,进行数据分析,并将自己数据分析的思考过程写在其中,方便之后整理思路以及向别人展示数据分析结果,从左至右分别是默认,Python,终端、IPython和,Jupyter,Notebook,R,Notebook,2016,年,10,月,,R,语言的集成环境,RStudio,也拥有了自己的,R Notebook,了,集成开发环境

10、IDEPyCharm,&,Spyder,数据科学计算平台,Anaconda,“,leading open data science platform powered by Python,自动配置,Python,环境,下载并安装,Jupyter Notebook,、,qtconsole,和集成开发环境,Spyder,包管理器,conda,总结,Python,语言的特点:优雅、简单、易学,Python,语言的诞生与发展历史,Python,语言的运行环境:,IPython,、,Jupyter,Notebook,、,Spyder,Python,语言的数据科学计算平台:,Anaconda,实践案例,1

11、PyCharm,下,Hello World,通过例子说明,Python,与其他语言的区别,万物皆对象,空格控制结构,报错,第二部分,基本概念,变量、注释、,print,函数、数据类型,算术运算符、类型转换,解释型语言,Python,Python,语言是一种,解释型,、面向对象、动态数据类型的高级程序设计语言,数据集变量及相关含义,公开数据集资源,UCI,数据集,Kaggle,数据集,Yahoo,!股票价格数据,用来存储一些之后可能会变化的值,对科比投篮,ID,为,1,的一次投篮进行分析,那么我们就可以创建一个名称为,shot_id,的变量,并且将,1,值储存在变量,shot_id,中,如

12、果之后我们想要分析科比的另外一次投篮,比如投篮,ID,为,2,的投篮,我们只需要修改变量,shot_id,的赋值,将,shot_id,赋值为,2,即可,变量和常量,变量,变量名必须是大小写英文字母、数字或下划线,_,的组合,不能用数字开头,并且对大小写敏感,关键字不能用于命名变量(,31,个),如,and,、,as,、,assert,、,break,、,class,、,continue,、,def,、,del,等,变量命名规则,通过赋值运算符,=,变量名和想要赋予变量的值连接起来,变量的赋值操作就完成了声明和定义的的过程,在其他语言中需要制定类型;,同一变量可以反复赋值,而且可以是不同类型的变

13、量,这也是,Python,语言称之为动态语言的原因,变量赋值,常量表示“不能变”的变量,Python,中是没有常量的关键字的,只是我们常常约定使用大写字母组合的变量名表示常量,也有不要对其进行赋值”的提醒作用,常量,如同我们在看书时做笔记一样,Python,语言会通过注释符号识别出注释的部分,将它们当做纯文本,并在执行代码时跳过这些纯文本,在,Python,语言中,使用,#,进行行注释,注释,多行注释使用连续单个单引号或者双引号,在,Python 2.x,版本中,同时兼容,print,和,print(),在,Python 3.x,版本中,,print,函数为带括号的,print(),如果想要看

14、变量的值,则直接在,print,后面加上变量名即可。如果是想要输出提示信息,如一句话,那我们需要将提示信息用,单引号包裹起来(这使得内容构成一个字符串),print,函数,使用逗号,隔开变量与其他剩余内容,则,print,在输出时会依次打印各个字符串或变量,遇到逗号,时会输出一个空格,print,函数不仅可以打印变量值,也可以打印计算结果,Python,语言的数据类型包括整型、浮点型、字符串、布尔型和空值,整型(,int,),整型的取值为整数,有正有负,如,2,,,-666,,,666,等。在科比投篮数据集中,,shot_id,、,game_event_id,、,game_id,、,loc_x

15、loc_y,、,minutes_remaining,、,period,、,playoffs,、,seconds_remaining,、,shot_distance,、,shot_made_flag,、,team_id,都是整型变量,数据类型,浮点型的取值为小数,当计算有精度要求时被使用,由于小数点可以在相应的二进制的不同位置浮动,故而称为浮点数,如,3.14,,,-6.66,等,但是如果是非常大或者非常小的浮点数,就需要使用科学计数法表示,用,e,代替,10,。科比投篮数据集中的,lat,和,lon,为浮点型变量。,浮点型(,float,),字符串(,str,),字符串是以两个单引号或两

16、个双引号包裹起来的文本,字符串,Jump Shot,包括,J,,,u,,,m,,,p,,空格,,S,,,h,,,o,,,t,这,9,个字符,字符串(,str,),转义字符:字符串里常常存在一些如换行、制表符等有特殊含义的字符,这些字符称之为转义字符,比如,n,表示换行,,t,表示制表符,,Python,还允许用,r,“,”,表示,“,”内部的字符串默认不转义,布尔型(,bool,),布尔型只有,True,和,False,两种值。比较运算和条件表达式都会产生,True,或,False,布尔型(,bool,),布尔型(,bool,),布尔值可以进行,and,、,or,和,not,运算,,and,和

17、or,运算分别用,&,和,|,表示,and,运算,or,运算,布尔型(,bool,),not,运算为非运算,即把,True,变成,False,,,False,变成,True,。,空值是,Python,里一个特殊的值,用,None,表示,一般用,None,填充表格中的缺失值,使用,type(),函数,来获取某值的类型,空值(,NoneType,),数据集变量的数据类型总结,int64,、,float64,分别表示,64,位的整型和,64,位的浮点型,日期数据类型,还有一种特殊的数据类型,日期类型,这种类型数据在金融、交通等领域十分常见,我们将在日期数据的处理这一部分对这一类型的数据分析进行详细

18、讲解,二元数学运算符,算术运算符,Python 2.x,版本与,Python 3.x,版本(以下简称,Python 2,和,Python 3,)的整除是不同的。,函数,int(),、,float(),、,str(),和,bool(),分别用于将变量转换成整型、浮点型、字符串和布尔型变量,类型转换,某些变量无法转换成数值型变量,只有在变量值为,0,时,,bool,转换的结果才为,False,:,除了使用,type(),外,我们还可以使用,isinstance(),来获得数据类型,总结,数据类型、算术运算符、类型转换,变量、注释、,print,函数,第三部分,数据的容器(结构),列表、元组、字典、

19、集合,列表,科比投篮数据集,列表(,list,)是一个,有序的,序列结构,序列中的元素可以是不同的数据类型,列表可以进行一系列序列操作,如索引、切片、加、乘和检查成员等,将列表中的各元素用逗号分隔开,并用中括号将所有元素包裹起来,列表创建,使用,append(),方法添加元素,该方法会在列表末尾位置添加数据元素,使用,remove(),方法删除元素,列表对象的增减,实践练习,现有一空的列表“,kobe_list”,用来存入科比某次投篮的信息,请利用,append(),方法将投篮,ID2,、投篮类型,Jump Shot,、科比所在球队,Los Angeles Lakers,和对手,POR,按顺序

20、加入到列表变量,kobe_list,中,remove(),方法适用于知道要删除的值的情况,当我们不知道具体元素值,但是知道元素的索引位置时,我们可以使用,del,函数配合列表索引,删除索引位置的元素或者使用,pop(),方法,列表对象的增减,通过,insert(),方法在指定的索引位置添加数据元素,列表对象的增减,实践练习,kobe_list=2,Los Angeles Lakers,Jump Shot,POR,现在需要添加更多关于科比某次投篮的信息,包括投篮位置(按区域划分)、比赛日期和对阵形式(主场或者客场),在,kobe_list,插入,Left Side(L),,,2000-10-31

21、和,LAL POR,并删除数据元素,2,在,Los Angeles Lakers,之后加上,matchup,的值,Python,语言中所有的索引都是从,0,开始计数的,如果列表中有,n,个元素,那么最后一个元素的索引是,n-1,如果我们想要获取,kobe_list,中第,3,个元素及倒数第二个元素,列表索引,Python,内置的用于判断列表长度的函数为,len(),列表长度,切片操作需要提供起始索引位置和最后索引位置,然后用冒号,:,将两者分开,如果未输入步长,则默认步长为,1,切片操作返回一系列从起始索引位置开始到最后索引位置结束的数据元素,需要注意的是,起始索引位置的值包含在返回结果中

22、而最后索引位置的值不包含在返回结果中,列表切片,切片操作需要提供起始索引位置和最后索引位置,然后用冒号,:,将两者分开,列表切片,逆向切片,我们可以省略起始索引位置,表示从最开始进行切片,当我们将两个索引都省略之后,我们将按原样复制一个列表,如果想要将列表的顺序颠倒,则可以使用,:-1,列表切片,列表中的元素也可以是列表,这样可以将列表看成更高维的数组,拆开很容易理解,嵌套列表,实践练习,现有科比某次投篮信息的列表,kobe_list,kobe_list=Los Angeles Lakers,LAL POR,Jump Shot,POR,Left Side(L),2000-10-31,请使用切

23、片方法取出索引位置,3,到,5,的元素,并存入到列表,three_five,中,并提取比赛日期中的年份存入变量,year,中,提示:,读取年份时,先使用索引方法将,kobe_list,或者,three_five,最后一个日期元素值,2000-10-13,提取出来,索引位置为,-1,,然后对该字符串进行切片操作,切片为,0:4,元组,元组(,tuple,)数据结构与列表类似,其中元素可以有不同的类型,但是元组中的,元素是不可变,的,即一旦初始化之后,就不能够再做修改(报错:元组对象不支持赋值),由于元组是不可变的,因此元组对象没有,append(),、,insert(),和,del,这样的方法。

24、实际上,,tuple,的使用可以使得代码更安全,防止错误赋值导致重要对象的改变。,实践练习,现有科比某次投篮信息的元组,kobe_tuple,kobe_tuple=(2,Jump Shot,Los Angeles Lakers,POR),请将,kobe_tuple,中的投篮,ID,由,2,改为,3,,投篮类型由,Jump Shot,改为,Slam Dunk Shot,提示:通过,kobe_tuple,方式访问元组中的列表元素中的某一个元素,字典,字典(,dict,)在其他语言中被称作哈希映射(,hash map,)或者相关数组(,associative arrays,),字典是一种大小可变的

25、键值对集,其中的键(,key,)和值(,value,)都是,Python,对象,字典用在需要高速查找的地方,字典的创建使用大括号,包含键值对,并用冒号,:,分隔键和值,形成,键,:,值,对,可以看出,字典中的数据元素是无序的,并不会按照初始化的顺序排列。不同键所对应的值可以相同,但是字典中的键必须是唯一的,字典创建,利用,for,循环和,zip(),函数创建字典,zip(),函数用于将多个序列(列表、元组等)中的元素配对,产生一个如,(,列表,1,元素,列表,2,元素,),(,),的新的元组列表;,for,循环用于重复执行将值放入键中的操作,。,字典创建,实践练习,请创建关于科比投篮信息的字典

26、kobe_dict,,键为,shot_id,,值为,shot_zone_area,其中列表,shot_id,与列表,shot_zone_area,应按照顺序一一对应,shot_id=1,2,3,shot_zone_area=Right Side(R),Left Side(L),Left Side Center(LC),字典的元素访问(以及插入、设置)方式与列表和元组一样。不同的是,列表和元组的索引号是按照顺序自动生成,而字典的索引号是键,字典索引,字典中某值的索引还可以通过,get,方法,如果字典不包含某个键,可以返回,None,,或者自己指定的值,如果在字典中不存在索引的键,则系统会报错,

27、字典索引,我们可以通过,in,判断是否存在某个键,其语法跟在列表和元组中判断是否存在某个值是相同的,也可以使用内置的,has_key(),方法,字典索引,如果不太确定字典中有哪些键或者值,我们可以使用,keys(),方法或者,values(),方法,字典索引,在有些情况下,我们需要取出字典中的键值对用于下一步的分析,此时可以使用,items(),方法,该方法将返回所有键值对,并将其保存在一个元组列表(列表中的元素为元组)中,字典索引,字典的删减有三种方法,使用,del,函数对单一元素或者整个字典进行删除,使用,pop(),方法删除单一元素,使用,clear(),方法清空词典的所有元素,字典元素

28、删减,集合,集合(,set,)是一种无序集,它是一组键的集合,不存储值,在集合中,重复的键是不被允许的。集合可以用于去除重复值,集合也可以进行数学集合运算,如并、交、差以及对称差等。,应用:,去重。把一个列表变成集合,就自动去重了,关系测试。测试两组数据之前的交集、差集、并集等关系,集合的创建有两种方式:使用,set(),函数或者使用大括号,需要注意的是,创建空集合,必须使用,set(),,而不是,,因为,表示创建一个空的字典,集合创建,集合支持数学集合运算,如并、交、差以及对称差等,集合运算,集合支持数学集合运算,如并、交、差以及对称差等,集合运算,总结,创建、索引、增减、切片操作,列表、元

29、组、字典、集合,第四部分,控制结构,if,选择结构、,for,循环结构、,while,循环结构,布尔值,在这个世界上,文字和认知中有真和假的判断,而对于计算机而言,布尔值,True,和,False,就表示 真 和 假,True,、,False,是比较显式的真和假,而在,Python,中以下值都会被看作是假(,False,):,=,符号是判断两个值、变量之间是否相等的操作符,相等则返回布尔值,True,对于字符型变量也是可以这么操作的:,=,符号,if,选择结构,判断条件为真(,True,)的时候才执行冒号后下面的语句,比如现在我们已有一个精灵宝贝的,HP,值,而我只希望当这个,HP,值大于,2

30、0,的时候才打印出来,除了,if,语句外,还有,if-else,、,if-elif,语句,for,循环结构,for,循环是可以依次得到序列循环中每个元素,并依次处理,现在有一个列表,这个列表存放的是,10,个小精灵的,HP,数值,现在希望得到里面每个数字都乘以,2,while,循环结构,while,循环和,for,循环不同的是,它的停止条件是个人自己设定的:,判断条件和,if,语句是相同的,而什么时候用,while,呢?在你确定满足条件而不确定需要的循环次数时,那么,while,是最好的选择。现在有一个小精灵的,HP,数值变量,我希望它在大于,20,的时候,逐次变小,直到等于,20,为止。,组

31、合使用,除了单独使用上述控制结构之外,我们还可以嵌套使用。比如说在前面的,HP,序列,我只希望其中的偶数乘以,”,2,”,,奇数不变。,python,作为一,种简洁,、直接、贴近人类自然语言的计算机语言,,它,对于基础的数据结构,tuple,、,list,、,dict,内嵌了很多十分方便的函数和操作,。,在前面章节介绍,的方法之外,这章将介绍在,list/dict,内部使用,for,循环来构造,list/dict,的方法,。这些方法将让我们更加美观可读、方便简洁地实现一些功能。,列表推导式,列表推导式,l,ist,是,使用,python,过程中是一个非常常用的数据结构,无论是作为最终数据的保存

32、结果,还是中间数据结果的临时存储,都能提供很方便的功能,。使用列表推导式可以让循环在列表内完成。,以下,为例子,对列表中每个数值逐个减去均值,含义解析:,关键词,for,循环后跟的是循环语法,这部分不变;而在,for,循环真正表达式部分则在列表推导式中移前,运算结果直接添加入列表中。,字典也可以用推导式,但没有列表推导式,那么常用。,字典,推导式多用于需要元素有一一对应关系时,比如,前面谈,到当变量是字符型时,需要将字符转换为一一对应的数值型,。,字典推导式,United,States Energy,Census,and GDP 2010-2014,数据集中,Region,变量是字符型,如现需

33、要对其进行数值转换。,enumerate,是,Python,的一个常用内置函数,它用在列表中时,不但会产生列表内的元素,并且会,从,0,开始,按顺序生成序号。,总结,for,循环、,while,循环,布尔值、,if,条件判断,列表推导式、字典推导式,第五部分,数据文件的读写操作,数据的读取,对文件操作之前需要用,open(),函数打开文件,mode,参数中的,r,指读出,,w,指写入,打开之后将返回一个文件对象(,file object,),后续对文件内数据的操作都是基于这个文件对象的方法(,method,)来实现的,数据的读取,对文件数据的读取是用的,read(),方法,,read(),方法

34、将返回文件中的所有内容,用,print,打印所有内容会显示,Hello,world!,,记得每次用完文件后,都要关闭文件,f.close(),。,否则,文件就会一直被,Python,占用,不能被其他进程使用,数据的读取,也可以使用,with open()as f:,在操作后自动关闭文件,数据的读取,在,read(),中加入数字,可指定读取的字符数,数据的写入,写入的操作和读取是类似的,不过用的是,write(),函数,同时需要将打开文件的,mode,参数设置为,w,文本文件的操作,常见的数据文件包括,txt,格式或者,csv,(逗号分隔值文件格式)格式文,文本文件的读取,通过,open(),函

35、数打开文件,返回文件对象,对文件对象进行读取操作,除了前面介绍的,read(),之外还有两种读取数据的方法:,readline(),是每次读入一条数据的方式,,readlines(),是一次性读入文件所有数据,文本文件的读取,readlines(),读取后得到的是每行数据组成的列表,但是一行样本数据全部存储为一个字符串,并且数据读入后并没有将换行符去掉(,windows,系统的换行符是,rn,,,linux,系统的换行符号是,n,),在读入数据之后,用,for,循环对每一个元素去除换行符,并将每一个变量值用字符串处理方法,.,split(),分隔开来,文本文件的读取,.strip(),本身是一

36、个对字符串指定字符去除的方法,但括号里参数为空的时候,就会去除,r n t,文本文件的写入,设置参数,mode=w,。,write(),、,writelines(),是两个对文件对象的写入数据的方法。,write(),是逐次写入,,writelines(),可对一个列表里的所有数据一次性写入文件中,如果有换行需要,则要在每条数据后增加换行符,同时用字符串,.join(),的方法将每个变量数据联合成一个字符串并增加间隔符,t,逗号分隔值文件的操作,csv,文件用逗号,作为分隔符,逗号分隔值文件的读取,利用,Python,内置的,csv,模块读取数据,逗号分隔值文件的写入,引入,csv,模块,op

37、en(),打开文件,使用,csv.writer(),作为写入器,,writerow(),方法逐行写入,总结,open(),、,write(),、,readlines(),、,.strip(),、,.join(),文本文件读写操作、逗号分隔值文件读写操作,csv,模块、,csv.reader(),、,csv.writer(),实践案例,2,:,白葡萄酒品质探索,第六部分,错误类型和异常捕获,错误类型,语法错误,异常,捕获异常,assert,、,with,语句,自助控制异常,爬虫,HTTP,异常处理,错误类型,语法,错误(,Syntax errors,),代码,编译,时的错误,不符合,Python

38、语言规则的代码会停止编译并返回错误信息,异常(,Exceptions,),相较于语法错误,异常比较难发现,因为它只在代码,运行,时才会发生,如类型错误、数值错误、索引错误和属性错误等。,语法错误包含在异常基类中,错误类型,错误类型,Python,与,Java,异常类层级区别,Java,异常类层级,Python,异常类层级,语法错误,常见的语法,错误(,SyntaxError,)包括,:,缺少起始符号或结尾符号(括号、引号等,),缩进,错误,关键词拼写错误,语法错误,语法错误,常见的语法,错误(,SyntaxError,)包括,:,缺少起始符号或结尾符号(括号、引号等,),缩进,错误,关键词拼

39、写错误,语法错误,语法错误,常见的语法,错误(,SyntaxError,)包括,:,缺少起始符号或结尾符号(括号、引号等,),缩进,错误,关键词拼写错误,语法错误,修改语法错误实战演练,Queue,中。,存储模块,将数据存在存储介质中,通常是文件或数据库。,获取要访问的,URL,的,IP,地址(右图中标号为,1,、,2,),向,Web Server,请求资源(右图中标号为,3,),Web Server,收到请求,将响应返回给客户端(右图中标号为,4,),聚类分析,HTTP,请求过程,URLError,:不能够处理一个,response,网络无连接,即本机无法上网,连接不到特定的服务器,服务器不

40、存在,聚类分析,HTTP,请求过程的两种常见异常,HTTPError,:,URLError,的子类,在特定的,HTTP,URLs,中产生,每一个,HTTP,响应对象,response,包含一个数字“状态码”,urllib2,会帮助处理重定向问题,不能处理则产生,HTTPError,状态码:,404-,页面无法找到,,403-,请求禁止,,401-,带验证请求,捕获到,HTTPError,,输出,code,,不再处理,URLError,异常。如果发生的不是,HTTPError,,则去捕获,URLError,异常,输出错误原因,聚类分析,异常处理技巧,异常处理技巧,利用,hasattr,方法提前对

41、异常的属性进行判断,以免出现属性输出报错的现象,只处理你知道的异常,避免捕获所有异常然后,吞掉,它们,抛出的异常应该说明原因,有时候你知道异常类型也猜不出所以然的,不要使用异常来控制流程,那样你的程序会无比难懂和难维护,如果有需要,切记使用,finally,来释放资源,一些经验,总结,捕获异常,语法错误和异常,抛出异常,自定义异常类,assert,,,with,语句,爬虫,HTTP,异常处理,,URLError,,,HTTPError,,,code,,,reason,第七部分,字符编码问题处理,编码和解码,编码集,解决乱码,编码是为了让机器读懂语言。即输入的是字符“中文”,那么编码就是将“中文

42、编码为二进制格式让机器读懂,在,Python,中,机器其实是不认识,unicode,的,而是接收的,str,即使输入的数据是,unicode,的,而在,Python,内部都会将,unicode,自动转为,str,编码和解码,电脑,编码(,encode,),str,unicode,解码(,decode,),编码和解码,进攻,编码,鼓声,士兵,解码,行为,str,通过解码函数,decode(),转换为,unicode,,,unicode,通过编码函数,encode(),转换为,str,或两个单引号,“”,来赋值的,访问一个元素就是一个字节,Python,字符串,Python,字符串,unicod

43、e,字符串是在,或,“”,前加,u,来赋值的,同时访问一个元素则是一个字符,3.x,版本有两种表示字符串的类型:,bytes,和,str,,,str,类中包含了,unicode,字符,非,unicode,编码如,UTF-8,、,GBK,被定义成了,bytes,使用,encode(),和,decode(),函数进行相互转换,如果出现乱码的状况,那肯定是编码转码出现了问题,这不外乎有以下几个关键点:,Python,解释器设置的默认编码,源文件设置的编码,终端编码,解决乱码,Python,解释器的编码指,Python,内部认为的字符,str,的编码,即一个,str,变量,要转换为,unicode,时

44、Python,解释器默认的转换方式,Python,的默认转换方式是,ASCII,,,sys.getdefaultencoding(),函数可以获得默认编码信息,聚类分析,解释器编码,在,ASCII,默认编码条件下对中文字符编码会出现错误,因为,ASCII,不能对中文进行编码,聚类分析,解释器编码,通过前面介绍的,encode(),函数和,decode(),函数可以设置参数,指定编码方式,对中文字符进行,GBK,编码和,UTF-8,编码,聚类分析,解释器编码,中文字符,str,的解码问题,聚类分析,解释器编码,想要得到,GBK,编码的,str,:先对其进行,UTF-8,解码,再对其进行,GB

45、K,编码,聚类分析,解释器编码,元组、列表、集合、字符串等类型,并按位置传递到函数入口参数中,聚类分析,不定长参数,*,args,*,args,*args,传入的时候,如果调用函数使用关键词传入参数时会出错,不定长参数,聚类分析,不定长参数,*,args,*kwargs,*kwargs,的出现便是解决需要传入特定关键词参数的情况,聚类分析,不定长参数,*,kwargs,聚类分析,常见包中的不定参数,scikit-learn,中的测试集训练集划分函数,def,train_test_split(,*,array,*,options),函数定义时,*,可以将按位置传递进来的参数“打包”成元组,(tu

46、ple),类型,*,可以将按关键字传递进来的参数“打包”成字典,(dictionary),类型,聚类分析,函数定义与调用时,不定长参数的传入,函数调用时,*,可以“解压”待传递到函数中的 元组、列表、集合、字符串等类型,并按位置传递到函数入口参数中,*,可以“解压”待传递到函数中的字典,并按关键字传递到函数入口参数中,简化的函数定义方式,lambda,函数,总结,位置传入、关键词、默认参数、不定长参数,参数定义的顺序:必选参数、默认参数、可变参数和关键字参数,函数的语法规则,lambda,函数,第九部分,变量作用域,局部变量,全局变量,局部变量转为全局变量,同名变量引用,聚类分析,局部变量,局

47、部变量是指那些有固定的变量作用域,只有在此作用域内才能调用此变量。具体而言,比如函数内的局部变量的作用域仅限于函数内。以下建立一个新的函数,命名为,mean,(),,用于求平均,局部变量,聚类分析,局部变量,在,关键词,def,定义,函数的范围内,新定义,/,赋值的变量都是局部变量,在该函数之外引用函数内命名的变量的时候会报错,聚类分析,局部变量,同理,在局部区域,引用局部区域,以外的变量,也会引起报错。,全局变量,全局变量是相对局部变量而言的作用范围在全局,即在初始定义赋值后,无论是函数、类、,lambda,函数内都可以引用全局变量。在,关键词,def,、,class,、,lambda,之外

48、定义的变量,都作为全局变量,。,在上面的,mean,(),函数内定义的,length,变量移至,关键词,def,之外,即变为,全局变量:,全局变量,有时候会有在函数内定义的局部变量在函数外引用的需求,比如前面的,mean,(),函数中最,开始,length,定义,时是局部变量,现只需要在定义变量时使用,关键词,global,即,可将其定义为,全局变量,局部变量转为全局变量,当某局部变量和全局变量都有相同变量名时,函数内引用该变量会直接调用函数内定义的局部变量。,问题:如果有嵌套函数,并且有多个同名变量该怎么办?,同名变量引用,聚类分析,LEGB,原理简要介绍,当一个函数体内需要引用一个变量的

49、时候,会按照如下顺序查找:,首先查找局部变量(,Locals,);,如果找不到叫做该名称的局部变量,则去函数体的外层去寻找局部变量(,Enclosing function locals,)。(适用于嵌套函数的情况),如果函数体外部的局部变量中也找不到叫做该名称的局部变量,则从全局变量(,Global,)中寻找。再找不到,只好去找内置库(,Bulit-in,),像,C,语言就没有这种机制,局部区找不到就直接跳到静态变量(,static,)区了,当前栈框,前一个栈框,再前一个栈框,全局区(栈底),第十部分,Python,中的模块,模块简介,数据分析领域常用的包,搜索路径管理,模块的导入,利用,cs

50、v,、,pandas,导入数据,缺失值处理,使用,matplotlib,绘图,模块简介,内置电池(,batteries,included,),基础代码库,覆盖了网络通信、文件处理、数据库接口、图形系统、,XML,处理,第三方工具包,Pandas,:数据处理与分析,Numpy,:科学计算,BeautifulSoup4,:处理,HTML,文档,Matplotlib,:绘图,Scikit-learn,:基于,SciPy,和,Numpy,的开源机器学习模块,Tensorflow,:深度学习框架,Python,程序的架构,Python,程序的构架指:将一个程序分割为源代码文件的集合以及将这些部分连接在一

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服