




已阅读5页,还剩78页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,Python学习,数据分析与数据挖掘,.,认识Python,Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNUGeneralPublicLicense)协议Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C+)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型,然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C+重写,而后封装为Python可以调用的扩展类库。,.,Python优点有哪些,Python是一种开源的、解析性的,面向对象的编程语言Python使用一种优雅的语法,可读性强Python具有丰富的库,可以处理各种工作Python支持类和多层继承等的面向对象编程技术Python可运行在多种计算机平台和操作系统中,如Unix、Windows、MacOS、Ubuntu、OS/2等等,.,为什么选择Python进行数据分析,在众多解释型语言中,Python最大的特点是拥有一个巨大而活跃的科学计算社区。进入21世纪以来,在行业应用和学术研究中采用python进行科学计算的势头越来越猛。近年来,由于Python有不断改良的库(主要是pandas),使其成为数据处理任务的一大代替方案,结合其在通用编程方面的强大实力,完全可以只是用Python这一种语言去构建以数据为中心的应用程序。作为一个科学计算平台,Python的成功源于能够轻松的集成C、C+以及Fortran代码。大部分现代计算机环境都利用了一些Fortran和C库来是西安线性代数、优选、积分、快速傅里叶变换以及其他诸如此类的算法。,.,课程内容,Python环境搭建1.1python版本选择1.2python安装2.Python基础2.1python基础语法2.2python数据类型2.3条件和循环2.4Python函数2.5Python模块2.6Python文件I/O3.Python库介绍3.1NumPy库介绍3.2Pandas库介绍4.数据处理与分析4.1数据探索4.2数据预处理4.3挖掘建模5.实例分析5.1Titanic数据集分析5.2餐饮客户价值分析,.,1.1Python环境搭建,Python2.X和Python3.XPython的3.0版本,常被称为Python3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python3.0在设计的时候没有考虑向下相容,许多针对早期Python版本设计的程式都无法在Python3.0上正常执行。大多数第三方库都正在努力地相容Python3.0版本。即使无法立即使用Python3.0,也建议编写相容Python3.0版本的程式,然后使用Python2.6,Python2.7来执行。Insummary:Python2.xislegacy,Python3.xisthepresentandfutureofthelanguage,.,1.2Python安装,Unix分开。以下划线开头的标识符是有特殊意义的。以单下划线开头_foo的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用fromxxximport*而导入以双下划线开头的_foo代表类的私有成员;以双下划线开头和结尾的_foo_代表Python里特殊方法专用的标识,如_init_()代表类的构造函数。,.,Python保留字符下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。所有Python的关键字只包含小写字母。,.,行和缩进学习Python与其他语言最大的区别就是,Python的代码块不使用大括号来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。以下代码会执行错误:,.,Python引号Python可以使用引号()、双引号()、三引号(或)来表示字符串,引号的开始与结束必须的相同类型的。其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。,.,Python注释python中单行注释采用#开头python中多行注释使用三个单引号()或三个双引号()。,.,2.2Python数据类型,标准数据类型Python定义了一些标准类型,用于存储各种类型的数据。Python有五个标准的数据类型:Numbers(数字)String(字符串)List(列表)Tuple(元组)Dictionary(字典),.,Python数字数字数据类型用于存储数值。他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。当你指定一个值时,Number对象就会被创建。可以通过使用del语句删除单个或多个对象的引用。例如:Python支持四种不同的数字类型:int(有符号整型)long(长整型也可以代表八进制和十六进制)float(浮点型)complex(复数),var1=1var2=10,delvardelvar_a,var_b,.,Python字符串字符串或串(String)是由数字、字母、下划线组成的一串字符。python的字串列表有2种取值顺序:从左到右索引默认0开始的,最大范围是字符串长度少1从右到左索引默认-1开始的,最大范围是字符串开头如果你要实现从字符串中获取一段子字符串的话,可以使用变量头下标:尾下标,就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。,s=a1a2an(n=0),S=ilovepythons1:5的结果是love。,.,Python列表List(列表)是Python中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。列表用标识,是python最通用的复合数据类型。列表中值的切割也可以用到变量头下标:尾下标,就可以截取相应的列表,从左到右索引默认0开始,从右到左索引默认-1开始,下标可以为空表示取到头或尾。加号+是列表连接运算符,星号*是重复操作。如下实例:,.,Python元组元组是另一个数据类型,类似于List(列表)。元组用()标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。,.,Python字典字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典用标识。字典由索引(key)和它对应的值value组成。,.,Python数据类型转换,.,2.3条件和循环,Python条件语句Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。Python程序语言指定任何非0和非空(null)值为true,0或者null为false。Python编程中if语句用于控制程序的执行,基本形式为,.,Python循环语句循环语句允许我们执行一个语句或语句组多次。Python提供了for循环和while循环(在Python中没有do.while循环),.,演示Pythonwhile语句执行过程,.,2.4Python函数,定义函数遵循的相关规则函数代码块以def关键词开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。函数的第一行语句可以选择性地使用文档字符串用于存放函数说明。函数内容以冒号起始,并且缩进。return表达式结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。,.,函数语法实例,.,2.5Python模块,定义模块好处模块让你能够有逻辑地组织你的Python代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。,Python模块(Module),是一个Python文件,以.py结尾,包含了Python对象定义和Python语句。,.,模块的引入模块定义好后,我们可以使用import语句来引入模块,语法如下:比如要引用模块math,就可以在文件最开始的地方用importmath来引入。在调用math模块中的函数时,必须这样引用:,importmodule1,module2,.moduleN,模块名.函数名,.,2.6Python文件I/O,打印到屏幕最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式。此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下:,.,读取键盘输入Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘。二者区别raw_input会提示你输入任意字符串,然后在屏幕上显示相同的字符串。input函数和raw_input函数基本类似,但是input可以接收一个Python表达式作为输入,并将运算结果返回。,raw_inputinput,.,打开和关闭文件,open函数你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。语法:file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。,Python提供了必要的函数和方法进行默认情况下的文件基本操作。你可以用file对象做大部分的文件操作。,fileobject=open(file_name,access_mode,buffering),.,close()方法File对象的close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。当一个文件对象的引用被重新指定给另一个文件时,Python会关闭之前的文件。语法:,fileObject.close();,.,write()方法write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。write()方法不会在字符串的结尾添加换行符(n)。语法:,fileObject.write(string);,.,read()方法read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。语法:,fileObject.read(count);,.,PythonFile(文件)方法,.,python库,利用python进行数据分析工具,.,重要的Python库,NumPy:Numpy(NumericalPython的简称)是Python科学计算的基础包。快速高效的多维数组对象ndarray用于对数组执行元素级计算以及直接对数组执行数学运算的函数用于读写硬盘上基于数组的数据集的工具线性代数运算、傅里叶变换、以及随机数生成用于将C、C+、Fortran代码集成到Python的工具除了为Python提供快速的数组处理能力,NumPy在数据分析方面还作为在算法之间传递数据的容器,.,Pandas:pandas提供了使我们能够快速便捷地处理结构化数据的大量数据结构和函数Pandas兼具NumPy高性能的数据计算功能以及电子表格和关系型数据库(如SQL)灵活的数据处理功能。提供了复杂精细的索引功能、一边更为便捷地完成重塑、切片和切块、聚合以及选取数据子集等操作。Pandas提供了大量适用于金融数据的高性能时间序列功能和工具,.,其他的Python库,Matplotlib:matplotlib是最流行的用于绘制数据图标的Python库,实现数据可视化。IPython:Ipython是Python科学计算标准工具集的组成部分,它将其他所有的东西联系到了一起,为交互是和探索式计算提供了一个强健而高效的环境。SciPy:SciPy是一组专门解决科学计算中各种标准问题域的包的集合,包括Segrate:数值积分例程和韦恩方程式求解器Scipy.linalg:扩展了由numpy.linalg提供的线性代数例程和矩阵分解功能Scipy.optimize:函数优化器(最小化器)以及根查找算法Scipy.signal:信号处理工具Scipy.sparse:稀疏矩阵和系数线性系统求解器Scipy.special:SPECFUN(这是一个实现了许多常用数学函数(如伽马函数)的Fortran库)的包装器Scipy.stats:标准连续的离散概率分布(如密度函数、采样器、连续分布函数等)、各种统计检验方法,以及更好的描述统计法。Scipy.weave:利用内敛C+代码加速数组计算的工具,.,常用第三方Python库安装和导入,安装下载并安装Anaconda,它附带了预安装的库。AnacondaPython是完全免费、跨平台、企业级的Python发行大规模数据处理、预测分析和科学计算工具。PyCharm已经集成NumPy、Pandas、Matplotlib等常用库。导入importnumpyasnpfromsocketimportgethostname,socket,.,3.1NumPy库介绍,NumPy是高性能科学计算和数据分析的基础包。部分功能如下:ndarray,具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。用于对整组数据进行快速运算的标准数学函数(无需编写循环)。用于读写磁盘数据的工具以及用于操作内存映射文件的工具。线性代数、随机数生成以及傅里叶变换功能。用于集成C、C+、Fortran等语言编写的代码的工具。首先要导入numpy库:importnumpyasnp,.,.,.,.,.,.,3.2Pandas库介绍,pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。使用方法frompandasimportSeries,DataFrameimportpandasaspd,.,Series常用函数,.,DataFrame常用函数,.,.,.,分析步骤定义数据分析目标:明确挖掘数据的目标和达到的效果。数据取样:采集目标相关样本数据子集,确保数据的相关性、可靠性、有效性。数据探索:对样本数据探索、审核、加工处理,保证样本数据的质量。数据预处理:改善数据质量,包括数据筛选、数据变量转换、缺失值数据处理等。挖掘建模:确定分析问题类型(分类,聚类、关联等),选择相应算法构建模型。模型评价:从建立模型中找到一个最好的模型,并应用到实际业务中。,利用python进行数据分析,.,4.1数据探索,数据质量分析主要任务是检查原始数据中是否存在脏数据,即不符合要求,不能直接处理的数据,包括缺失值分析、异常值分析、一致性分析。数据特征分析分布分析:揭示数据的分布特征和分布类型,通过绘制频率分布表、茎叶图等直观分析对比分析:把两个相互联系的指标进行比较,从数量上展示和说明研究对象规模的大小,水平的高低,速度的快慢,以及各种关系是否协调。统计量分析:用统计量指标对定量数据进行统计描述,常从集中趋势和离中趋势两个方面进行分析。相关性分析:分析连续变量之间线性相关程度的强弱,并用适当的统计指标表示出来。,.,4.2数据预处理,数据清洗删除原始数据集中的无关数据、重复数据、平滑噪声数据、无关数据,处理缺失值和异常值。数据集成将多个数据源合并存放在一个一致的数据存储(如数据仓库)中的过程。数据变换主要是对数据进行规范化处理,将数据转换成适当的形式,以适用于挖掘任务和算法的需要。数据规约产生更小但保持数据完整性的新数据集,在规约后的数据集上进行分析和挖掘更有效率。,.,Python主要数据预处理函数,.,4.3挖掘建模,分类与预测分类:构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的类别预测:建立两种或两种以上变量间相互依赖的函数模型,然后进行预测和控制实现过程学习步,通过归纳分析训练样本集来建立分类模型得到分类规则分类步,先用一直的测试样本集评估分类规则的准确率,如果准确率是可以接受的,则使用该模型对未知类标号的待测样本集进行预测,.,常用的分类与预测算法,.,主要回归模型分类,.,对某银行在降低贷款拖欠率的数据进行逻辑回归建模,数据示例如下表,应用举例一,.,Python代码,.,运行结果结果分析随机逻辑回归剔除变量,分别剔除了x2、x8、x1、x5,最终构建模型包含的变量为常量x3、x4、x6、x7。在建立逻辑回归模型时,使用了默认的阈值0.25。,.,聚类分析在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法。常用聚类方法,.,常用聚类分析算法,.,K-Means聚类算法,算法过程从N个样本数据中随机选取K个对象作为初始的聚类中心分别计算每个样本到各个聚类中心的距离,将对象分配到距离不最近的聚类中所有对象分配完成后,重新计算K个聚类的中心与前一次计算得到的K个聚类中心比较,如果聚类中心发生变化,转第二步,否则转下一步当质心不发生变化时停止并输出聚类不结果,.,应用举例二,找出下列谁是学霸?,.,使用Kmeans对学生成绩进行聚类运行结果结论大明、小鹏、大鹏、大萌是学霸,.,5.1Titanic数据集分析,前期准备数据下载,PassengerId=乘客IDSurvived=是否生还Pclass=乘客等级(1/2/3等舱位)Name=乘客姓名S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宜宾市兴文县2024-2025学年三下数学期末监测试题含解析
- 南京中医药大学《社会工作技巧工作坊人际沟通技巧》2023-2024学年第二学期期末试卷
- 湛江市高三月调研考试文综地理试题
- 2025年度借款合同补充协议范本
- 2025租房合同模板范本
- 2025子女租赁公寓合同
- 2025家庭居室装饰装修工程设计施工合同范本
- 2025年高考历史总复习考前历史主干知识梳理提纲
- 2025济南市劳动合同样本新
- 2025年高考历史阶段特征总结汇编(超全面)
- FITS加氢说明书
- 半导体物理与器件物理
- 200句话搞定上海中考单词(精华版)
- 船舶辅锅炉的自动控制系统分析
- 新员工培训考试【图书专员】
- 防伪包装技术
- 49000DWT江海直达成品油船设计
- 建设工程监理费计算器
- X互联网公司WLAN无线网络优化方案全解
- 装配及检验规范(修订版)【新版】
- 合成宝石特征x
评论
0/150
提交评论