Python与大数据专业分析课件470Pdoc.docx

上传人:b****7 文档编号:8949305 上传时间:2023-02-02 格式:DOCX 页数:11 大小:31.37KB
下载 相关 举报
Python与大数据专业分析课件470Pdoc.docx_第1页
第1页 / 共11页
Python与大数据专业分析课件470Pdoc.docx_第2页
第2页 / 共11页
Python与大数据专业分析课件470Pdoc.docx_第3页
第3页 / 共11页
Python与大数据专业分析课件470Pdoc.docx_第4页
第4页 / 共11页
Python与大数据专业分析课件470Pdoc.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

Python与大数据专业分析课件470Pdoc.docx

《Python与大数据专业分析课件470Pdoc.docx》由会员分享,可在线阅读,更多相关《Python与大数据专业分析课件470Pdoc.docx(11页珍藏版)》请在冰豆网上搜索。

Python与大数据专业分析课件470Pdoc.docx

Python与大数据专业分析课件470Pdoc

Python与大数据专业分析课件(470P)

Python与大数据分析计算机信息学院Python大数据专业友情提示上课时间请勿:

请将您手机改为震动避免在课室里使用手机交谈其他事宜随意进出教室请勿在室内吸烟上课时间欢迎:

提问题和积极回答问题随时指出授课内容的不当之处Python与大数据分析Python基础(次课)网络爬虫(次课)期中随堂上机考试(次课)金融数据分析案例(次课)文本数据分析案例(次课)图像数据分析(次课)自我介绍刘宁宁对外经济贸易大学信息学院讲师。

  专注于对图像分类(VisualObjectClassification)、文本处理(NaturalLanguageProcessing)、模式识别(PatternRecognition)等方面的研究。

  com为什么大数据首选是Python呢?

第一部分初识Python第二部分基本概念变量、注释、print函数、数据类型、算术运算符、类型转换第三部分数据的容器列表、元组、字典、集合第四部分控制结构与推导式第五部分数据的读写操作第六部分错误类型和异常捕获第七部分字符编码问题处理第八部分编写函数处理数据第九部分变量作用域第十部分Python中的模块第十一部分Python中的类第十五部分Numpy基础知识第十六部分Pandas数据分析第十三部分正则表达式第十四部分日期数据的处理Python语言的诞生和发展历史Python语言的特点运行环境及安装Python语言的诞生和发展历史Python语言是一种解释型、面向对象、动态数据类型的高级程序设计语言Python语言是数据分析师的首选数据分析语言也是智能硬件的首选语言数据分析创建复杂的Web应用程序游戏开发动画电影效果网站开发智能硬件开发Python与蟒蛇有关?

GuidovanRossum于年在荷兰国家数学和计算机科学研究所设计出来的Python语言的诞生BBCMontyPythonlsquosFlyingCircus(蒙提middot派森的飞行马戏团)GuidovanRossum(人称龟叔)Python版本于年月发布。

  在年月Python发布此版本没有完全兼容之前的PythonPython也因此分为了Python派系和Python派系两大阵营Python语言的发展历史TIOBEINDEX:

编程语言流行程度排行榜Python语言的TIOBEINDEXPython曾在年和年两度被TIOBE排行榜评为年度编程语言现已成为了第五大流行编程语言(截至年月)Python语言的TIOBEINDEXPython语言的特点优点一:

优雅、简单、明确(减少花哨、晦涩或以炫技为目的的代码)让数据分析师们摆脱了程序本身语法规则的泥潭更快的进行数据分析C语言Python语言优点二:

强大的标准库完善的基础代码库覆盖了网络通信、文件处理、数据库接口、图形系统、XML处理等大量内容被形象地称为内置电池(batteriesincluded)Python使用者调包侠优点三:

良好的可扩展性大量的第三方模块覆盖了科学计算、Web开发、数据接口、图形系统等众多领域开发的代码通过很好的封装也可以作为第三方模块给别人使用。

  如Pandas、Numpy、Seaborn、Scikitlearn等等优点四:

免费、开源缺点一:

运行速度慢缺点二:

加密难缺点三:

缩进规则缺点四:

多线程灾难Python语言的缺点Python语言与Java动态类型和静态类型Python中一切皆对象括号与缩进应用领域Python语言与R语言机器学习的一把利器可读性强便于上手灵活性强:

可与其他如Web应用程序进行整合以统计推断为导向数据分析之外的领域有所限制包凌乱且一致性较差Python语言与R语言的应用场景对比网络爬虫连接数据库内容管理系统API构建统计分析互动式图标面板运行环境及安装推荐使用Anaconda进行Python安装、环境配置及工具包管理IpythonqtconsolePyCharmJupyterNotebookSpyderIPython鼓励一种执行探索(executeexplore)的工作模式输入代码之后按下回车便会立即得到代码运行结果交互式计算和开发环境:

IPython交互式计算和开发环境:

IPython输入获得IPython的详细介绍输入quickref获得IPython的快速参考交互式计算和开发环境:

IPython输入help()查看IPython的帮助文档使用内省pandas查看Pandas的帮助文档基于Qt框架的GUI控制台qtconsole为终端应用程序提供诸如内嵌图片、多行编辑、语法高亮之类的富文本编辑功能启动命令:

jupyterqtconsole缺点:

功能少、用户友好性不够JupyterNotebookJuliaPythonR=Jupyter基于Web技术的交互式计算文档格式支持Markdown和Latex语法支持代码运行、文本输入、数学公式编辑、内嵌式画图和其他如图片文件的插入是一个对代码友好的笔记本JupyterNotebookJupyter支持包含Rkernel(支持R语言)启动命令:

jupyternotebookJupyterNotebook推荐使用JupyterNotebook进行数据分析并将自己数据分析的思考过程写在其中方便之后整理思路以及向别人展示数据分析结果从左至右分别是默认Python终端、IPython和JupyterNotebookRNotebook年月R语言的集成环境RStudio也拥有了自己的RNotebook了集成开发环境IDEPyCharmSpyder数据科学计算平台AnacondaleadingopendatascienceplatformpoweredbyPython自动配置Python环境下载并安装JupyterNotebook、qtconsole和集成开发环境Spyder包管理器conda总结Python语言的特点:

优雅、简单、易学Python语言的诞生与发展历史Python语言的运行环境:

IPython、JupyterNotebook、SpyderPython语言的数据科学计算平台:

Anaconda实践案例:

PyCharm下HelloWorld通过例子说明Python与其他语言的区别万物皆对象空格控制结构报错变量、注释、print函数、数据类型算术运算符、类型转换解释型语言PythonPython语言是一种解释型、面向对象、动态数据类型的高级程序设计语言数据集变量及相关含义公开数据集资源UCI数据集Kaggle数据集Yahoo!

股票价格数据用来存储一些之后可能会变化的值对科比投篮ID为的一次投篮进行分析那么我们就可以创建一个名称为shotid的变量并且将值储存在变量shotid中如果之后我们想要分析科比的另外一次投篮比如投篮ID为的投篮我们只需要修改变量shotid的赋值将shotid赋值为即可变量和常量变量变量名必须是大小写英文字母、数字或下划线的组合不能用数字开头并且对大小写敏感关键字不能用于命名变量(个)如and、as、assert、break、class、continue、def、del等变量命名规则通过赋值运算符=变量名和想要赋予变量的值连接起来变量的赋值操作就完成了声明和定义的的过程在其他语言中需要制定类型同一变量可以反复赋值而且可以是不同类型的变量这也是Python语言称之为动态语言的原因变量赋值常量表示不能变的变量Python中是没有常量的关键字的只是我们常常约定使用大写字母组合的变量名表示常量也有不要对其进行赋值的提醒作用常量如同我们在看书时做笔记一样Python语言会通过注释符号识别出注释的部分将它们当做纯文本并在执行代码时跳过这些纯文本在Python语言中使用#进行行注释注释多行注释使用连续单个单引号或者双引号在Pythonx版本中同时兼容print和print()在Pythonx版本中print函数为带括号的print()如果想要看变量的值则直接在print后面加上变量名即可。

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

  在科比投篮数据集中shotid、gameeventid、gameid、locx、locy、minutesremaining、period、playoffs、secondsremaining、shotdistance、shotmadeflag、teamid都是整型变量数据类型浮点型的取值为小数当计算有精度要求时被使用,由于小数点可以在相应的二进制的不同位置浮动故而称为浮点数如等但是如果是非常大或者非常小的浮点数就需要使用科学计数法表示用e代替。

  科比投篮数据集中的lat和lon为浮点型变量。

  浮点型(float)字符串(str)字符串是以两个单引号或两个双引号包裹起来的文本字符串JumpShot包括Jump空格Shot这个字符字符串(str)转义字符:

字符串里常常存在一些如换行、制表符等有特殊含义的字符这些字符称之为转义字符比如n表示换行t表示制表符Python还允许用r表示内部的字符串默认不转义布尔型(bool)布尔型只有True和False两种值。

  比较运算和条件表达式都会产生True或False布尔型(bool)布尔型(bool)布尔值可以进行and、or和not运算and和or运算分别用和|表示and运算or运算布尔型(bool)not运算为非运算即把True变成FalseFalse变成True。

  空值是Python里一个特殊的值用None表示一般用None填充表格中的缺失值使用type()函数来获取某值的类型空值(NoneType)数据集变量的数据类型总结int、float分别表示位的整型和位的浮点型日期数据类型还有一种特殊的数据类型日期类型这种类型数据在金融、交通等领域十分常见我们将在日期数据的处理这一部分对这一类型的数据分析进行详细讲解二元数学运算符算术运算符Pythonx版本与Pythonx版本(以下简称Python和Python)的整除是不同的。

  函数int()、float()、str()和bool()分别用于将变量转换成整型、浮点型、字符串和布尔型变量类型转换某些变量无法转换成数值型变量只有在变量值为时bool转换的结果才为False:

除了使用type()外我们还可以使用isinstance()来获得数据类型总结数据类型、算术运算符、类型转换变量、注释、print函数列表、元组、字典、集合列表科比投篮数据集列表(list)是一个有序的序列结构序列中的元素可以是不同的数据类型列表可以进行一系列序列操作如索引、切片、加、乘和检查成员等将列表中的各元素用逗号分隔开并用中括号将所有元素包裹起来列表创建使用append()方法添加元素该方法会在列表末尾位置添加数据元素使用remove()方法删除元素列表对象的增减实践练习现有一空的列表kobelist用来存入科比某次投篮的信息请利用append()方法将投篮ID、投篮类型#JumpShot#、科比所在球队#LosAngelesLakers#和对手#POR#按顺序加入到列表变量kobelist中remove()方法适用于知道要删除的值的情况当我们不知道具体元素值但是知道元素的索引位置时我们可以使用del函数配合列表索引删除索引位置的元素或者使用pop()方法列表对象的增减通过insert()方法在指定的索引位置添加数据元素列表对象的增减实践练习kobelist=,#LosAngelesLakers#,#JumpShot#,#POR#现在需要添加更多关于科比某次投篮的信息包括投篮位置(按区域划分)、比赛日期和对阵形式(主场或者客场)在kobelist插入lsquoLeftSide(L)rsquolsquorsquo和#LALPOR#并删除数据元素在#LosAngelesLakers#之后加上matchup的值Python语言中所有的索引都是从开始计数的如果列表中有n个元素那么最后一个元素的索引是n如果我们想要获取kobelist中第个元素及倒数第二个元素列表索引Python内置的用于判断列表长度的函数为len()列表长度切片操作需要提供起始索引位置和最后索引位置然后用冒号:

将两者分开如果未输入步长则默认步长为切片操作返回一系列从起始索引位置开始到最后索引位置结束的数据元素需要注意的是起始索引位置的值包含在返回结果中而最后索引位置的值不包含在返回结果中列表切片切片操作需要提供起始索引位置和最后索引位置然后用冒号:

将两者分开列表切片逆向切片我们可以省略起始索引位置表示从最开始进行切片当我们将两个索引都省略之后我们将按原样复制一个列表如果想要将列表的顺序颠倒则可以使用:

:

列表切片列表中的元素也可以是列表这样可以将列表看成更高维的数组拆开很容易理解嵌套列表实践练习现有科比某次投篮信息的列表kobelistkobelist=#LosAngelesLakers#,#LALPOR#,#JumpShot#,#POR#,#LeftSide(L)#,##请使用切片方法取出索引位置到的元素并存入到列表threefive中并提取比赛日期中的年份存入变量year中提示:

读取年份时先使用索引方法将kobelist或者threefive最后一个日期元素值##提取出来索引位置为然后对该字符串进行切片操作切片为:

元组元组(tuple)数据结构与列表类似其中元素可以有不同的类型但是元组中的元素是不可变的即一旦初始化之后就不能够再做修改(报错:

元组对象不支持赋值)由于元组是不可变的因此元组对象没有append()、insert()和del这样的方法。

  实际上tuple的使用可以使得代码更安全防止错误赋值导致重要对象的改变。

  实践练习现有科比某次投篮信息的元组kobetuplekobetuple=(,#JumpShot#,#LosAngelesLakers#,#POR#)请将kobetuple中的投篮ID由改为投篮类型由JumpShot改为#SlamDunkShot#提示:

通过kobetuple方式访问元组中的列表元素中的某一个元素字典字典(dict)在其他语言中被称作哈希映射(hashmap)或者相关数组(associativearrays)字典是一种大小可变的键值对集其中的键(key)和值(value)都是Python对象字典用在需要高速查找的地方字典的创建使用大括号{}包含键值对并用冒号:

分隔键和值形成键:

值对可以看出字典中的数据元素是无序的并不会按照初始化的顺序排列。

  不同键所对应的值可以相同但是字典中的键必须是唯一的字典创建利用for循环和zip()函数创建字典zip()函数用于将多个序列(列表、元组等)中的元素配对产生一个如(列表元素,列表元素),(,)的新的元组列表for循环用于重复执行将值放入键中的操作。

  字典创建实践练习请创建关于科比投篮信息的字典kobedict键为shotid值为shotzonearea其中列表shotid与列表shotzonearea应按照顺序一一对应shotid=,,shotzonearea=#RightSide(R)#,#LeftSide(L)#,#LeftSideCenter(LC)#字典的元素访问(以及插入、设置)方式与列表和元组一样。

  不同的是列表和元组的索引号是按照顺序自动生成而字典的索引号是键字典索引字典中某值的索引还可以通过get方法如果字典不包含某个键可以返回None或者自己指定的值如果在字典中不存在索引的键则系统会报错字典索引我们可以通过in判断是否存在某个键其语法跟在列表和元组中判断是否存在某个值是相同的也可以使用内置的haskey()方法字典索引如果不太确定字典中有哪些键或者值我们可以使用keys()方法或者values()方法字典索引在有些情况下我们需要取出字典中的键值对用于下一步的分析此时可以使用items()方法该方法将返回所有键值对并将其保存在一个元组列表(列表中的元素为元组)中字典索引字典的删减有三种方法使用del函数对单一元素或者整个字典进行删除使用pop()方法删除单一元素使用clear()方法清空词典的所有元素字典元素删减集合集合(set)是一种无序集它是一组键的集合不存储值在集合中重复的键是不被允许的。

  集合可以用于去除重复值集合也可以进行数学集合运算如并、交、差以及对称差等。

  应用:

去重。

  把一个列表变成集合就自动去重了关系测试。

  测试两组数据之前的交集、差集、并集等关系集合的创建有两种方式:

使用set()函数或者使用大括号{}需要注意的是创建空集合必须使用set()而不是{}因为{}表示创建一个空的字典集合创建集合支持数学集合运算如并、交、差以及对称差等集合运算集合支持数学集合运算如并、交、差以及对称差等集合运算总结创建、索引、增减、切片操作列表、元组、字典、集合if选择结构、for循环结构、while循环结构布尔值在这个世界上文字和认知中有真和假的判断而对于计算机而言布尔值True和False就表示真和假True、False是比较显式的真和假,而在Python中以下值都会被看作是假(False):

==符号是判断两个值、变量之间是否相等的操作符相等则返回布尔值True对于字符型变量也是可以这么操作的:

==符号if选择结构判断条件为真(True)的时候才执行冒号后下面的语句比如现在我们已有一个精灵宝贝的HP值而我只希望当这个HP值大于的时候才打印出来除了if语句外还有ifelse、ifelif语句for循环结构for循环是可以依次得到序列循环中每个元素并依次处理现在有一个列表这个列表存放的是个小精灵的HP数值现在希望得到里面每个数字都乘以while循环结构while循环和for循环不同的是它的停止条件是个人自己设定的:

判断条件和if语句是相同的而什么时候用while呢?

在你确定满足条件而不确定需要的循环次数时那么while是最好的选择。

  现在有一个小精灵的HP数值变量我希望它在大于的时候逐次变小直到等于为止。

  组合使用除了单独使用上述控制结构之外我们还可以嵌套使用。

  比如说在前面的HP序列我只希望其中的偶数乘以奇数不变。

  python作为一种简洁、直接、贴近人类自然语言的计算机语言它对于基础的数据结构tuple、list、dict内嵌了很多十分方便的函数和操作。

  在前面章节介绍的方法之外这章将介绍在listdict内部使用for循环来构造listdict的方法。

  这些方法将让我们更加美观可读、方便简洁地实现一些功能。

  列表推导式列表推导式list是使用python过程中是一个非常常用的数据结构无论是作为最终数据的保存结果还是中间数据结果的临时存储都能提供很方便的功能。

  使用列表推导式可以让循环在列表内完成。

  以下为例子对列表中每个数值逐个减去均值含义解析:

关键词for循环后跟的是循环语法这部分不变而在for循环真正表达式部分则在列表推导式中移前运算结果直接添加入列表中。

  字典也可以用推导式但没有列表推导式那么常用。

  字典推导式多用于需要元素有一一对应关系时比如前面谈到当变量是字符型时需要将字符转换为一一对应的数值型。

  字典推导式UnitedStatesEnergy,Census,andGDP数据集中Region变量是字符型如现需要对其进行数值转换。

  enumerate是Python的一个常用内置函数它用在列表中时不但会产生列表内的元素并且会从开始按顺序生成序号。

  总结for循环、while循环布尔值、if条件判断列表推导式、字典推导式数据的读取对文件操作之前需要用open()函数打开文件mode参数中的r指读出w指写入打开之后将返回一个文件对象(fileobject)后续对文件内数据的操作都是基于这个文件对象的方法(method)来实现的数据的读取对文件数据的读取是用的read()方法read()方法将返回文件中的所有内容用print打印所有内容会显示Hello,world!

记得每次用完文件后都要关闭文件fclose()。

  否则文件就会一直被Python占用不能被其他进程使用数据的读取也可以使用withopen()asf:

在操作后自动关闭文件数据的读取在read()中加入数字可指定读取的字符数数据的写入写入的操作和读取是类似的不过用的是write()函数同时需要将打开文件的mode参数设置为w文本文件的操作常见的数据文件包括txt格式或者csv(逗号分隔值文件格式)格式文文本文件的读取通过open()函数打开文件返回文件对象对文件对象进行读取操作除了前面介绍的read()之外还有两种读取数据的方法:

readline()是每次读入一条数据的方式readlines()是一次性读入文件所有数据文本文件的读取readlines()读取后得到的是每行数据组成的列表但是一行样本数据全部存储为一个字符串并且数据读入后并没有将换行符去掉(windows系统的换行符是rnlinux系统的换行符号是n)在读入数据之后用for循环对每一个元素去除换行符并将每一个变量值用字符串处理方法split()分隔开来文本文件的读取strip()本身是一个对字符串指定字符去除的方法但括号里参数为空的时候就会去除rnt文本文件的写入设置参数mode=w。

  write()、writelines()是两个对文件对象的写入数据的方法。

  write()是逐次写入writelines()可对一个列表里的所有数据一次性写入文件中如果有换行需要则要在每条数据后增加换行符同时用字符串join()的方法将每个变量数据联合成一个字符串并增加间隔符t逗号分隔值文件的操作csv文件用逗号,作为分隔符逗号分隔值文件的读取利用Python内置的csv模块读取数据逗号分隔值文件的写入引入csv模块open()打开文件使用csvwriter()作为写入器writerow()方法逐行写入总结open()、write()、readlines()、strip()、join()文本文件读写操作、逗号分隔值文件读写操作csv模块、csvreader()、csvwriter()实践案例:

白葡萄酒品质探索错误类型语法错误异常捕获异常assert、with语句自助控制异常爬虫HTTP异常处理错误类型语法错误(Syntaxerrors)代码编译时的错误不符合Python语言规则的代码会停止编译并返回错误信息异常(Exceptions)相较于语法错误异常比较难发现因为它只在代码运行时才会发生如类型错误、数值错误、索引错误和属性错误等。

  语法错误包含在异常基类中错误类型错误类型Python与Java异常类层级区别Java异常类层级Python异常类层级语法错误常见的语法错误(SyntaxError)包括:

缺少起始符号或结尾符号(括号、引号等)缩进错误关键词拼写错误语法错误语法错误常见的语法错误(SyntaxError)包括:

缺少起始符号或结尾符号(括号、引号等)缩进错误关键词拼写错误语法错误语法错误常见的语法错误(SyntaxError)包括:

缺少起始符号或结尾符号(括号、引号等)缩进错误关键词拼写错误语法错误修改语法错误实战演练http:

hackdatacnlearncourselecture异常通常由以下问题引起:

在定义函数之前就引用该函数调用不属于某个对象的方法或者属性试图将某个值转换为不恰当的数据类型异常除零错误(ZeroDivisionError):

除数为名称错误(NameError):

变量使用前未进行申明或者初始化聚类分析六种典型的异常类型错误(TypeError):

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1