Python数据分析报告_第1页
Python数据分析报告_第2页
Python数据分析报告_第3页
Python数据分析报告_第4页
Python数据分析报告_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021/3/10讲解:XX1 Python学习 数据分析与数据挖掘 2021/3/10讲解:XX2 认识Python Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。 Python由Guido van Rossum于1989年底发明,第一个公开发行版发 行于1991年。 Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议 Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语 言制作的各种模块(尤其是C/C+)很轻松地联结在一起。常见的一种 应用情形是,使用Python快速生成

2、程序的原型,然后对其中有特别要求 的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要 求特别高,就可以用C/C+重写,而后封装为Python可以调用的扩展 类库。 2021/3/10讲解:XX3 Python优点有哪些 Python是一种开源的、解析性的,面向对象的编程语言 Python使用一种优雅的语法,可读性强 Python具有丰富的库,可以处理各种工作 Python支持类和多层继承等的面向对象编程技术 Python可运行在多种计算机平台和操作系统中,如Unix、Windows、 MacOS、Ubuntu、OS/2等等 2021/3/10讲解:XX4 为什么选择Python进

3、行数据分析 在众多解释型语言中,Python最大的特点是拥有一个巨大而活跃的科学 计算社区。进入21世纪以来,在行业应用和学术研究中采用python进行 科学计算的势头越来越猛。 近年来,由于Python有不断改良的库(主要是pandas),使其成为数据 处理任务的一大代替方案,结合其在通用编程方面的强大实力,完全可以 只是用Python这一种语言去构建以数据为中心的应用程序。 作为一个科学计算平台,Python的成功源于能够轻松的集成C、C+以 及Fortran代码。大部分现代计算机环境都利用了一些Fortran和C库来是 西安线性代数、优选、积分、快速傅里叶变换以及其他诸如此类的算法。 2

4、021/3/10讲解:XX5 课程内容 Python环境搭建环境搭建 1.1 python1.1 python版本选择版本选择 1.2 python 1.2 python 安装安装 2. Python基础基础 2.1 python2.1 python基础语法基础语法 2.2 python2.2 python数据类型数据类型 2.3 2.3 条件和循环条件和循环 2.4 Python 2.4 Python 函数函数 2.5 Python 2.5 Python 模块模块 2.6 Python 2.6 Python文件文件I/OI/O 3. Python库介绍库介绍 3.1 NumPy3.1 Num

5、Py库介绍库介绍 3.2 Pandas 3.2 Pandas库介绍库介绍 4. 数据处理与分析数据处理与分析 4.1 4.1 数据探索数据探索 4.2 4.2 数据预处理数据预处理 4.3 4.3 挖掘建模挖掘建模 5. 实例分析实例分析 5.1 Titanic 5.1 Titanic数据集分析数据集分析 5.2 5.2 餐饮客户价值分析餐饮客户价值分析 2021/3/10讲解:XX6 1.1 Python环境搭建 Python2.X和Python3.X Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于 Python的早期版本,这是一个较大的升级。 为了不带入过

6、多的累赘,Python 3.0在设计的时候没有考虑向下相容, 许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。 大多数第三方库都正在努力地相容Python 3.0版本。即使无法立即使 用Python 3.0,也建议编写相容Python 3.0版本的程式,然后使用 Python 2.6, Python 2.7来执行。 In summary : Python 2.x is legacy, Python 3.x is the present and future of the language 2021/3/10讲解:XX7 1.2 Python安装 Unix 分开。

7、以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访 问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入 以双下划线开头的 _foo 代表类的私有成员;以双下划线开头和结尾的 _foo_ 代 表 Python 里特殊方法专用的标识,如 _init_() 代表类的构造函数。 2021/3/10讲解:XX13 Python 保留字符 下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何 其他标识符名称。所有 Python 的关键字只包含小写字母。 andexecnot assertfinallyor bre

8、akforpass classfromprint continueglobalraise defifreturn delimporttry elifinwhile elseiswith exceptlambdayield 2021/3/10讲解:XX14 行和缩进 学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 来控制类, 函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。 缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须 严格执行。以下代码会执行错误: 2021/3/10讲解:XX15 Python引号 Pyth

9、on 可以使用引号( )、双引号( )、三引号( 或 ) 来表示字符串,引号的开始 与结束必须的相同类型的。 其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特 定地点,被当做注释。 2021/3/10讲解:XX16 Python注释 python中单行注释采用 # 开头 python 中多行注释使用三个单引号()或三个双引号()。 2021/3/10讲解:XX17 2.2 Python数据类型 标准数据类型 Python 定义了一些标准类型,用于存储各种类型的数据。 Python有五个标准的数据类型: Numbers(数字) String(字符串) List(列表

10、) Tuple(元组) Dictionary(字典) 2021/3/10讲解:XX18 Python数字 数字数据类型用于存储数值。他们是不可改变的数据类型,这意味着改变数字数据 类型会分配一个新的对象。当你指定一个值时,Number对象就会被创建。 可以通过使用del语句删除单个或多个对象的引用。例如: Python支持四种不同的数字类型: int(有符号整型) long(长整型也可以代表八进制和十六进制) float(浮点型) complex(复数) var1 = 1 var2 = 10 del var del var_a, var_b 2021/3/10讲解:XX19 Python字符串

11、 字符串或串(String)是由数字、字母、下划线组成的一串字符。 python的字串列表有2种取值顺序: 从左到右索引默认0开始的,最大范围是字符串长度少1 从右到左索引默认-1开始的,最大范围是字符串开头 如果你要实现从字符串中获取一段子字符串的话,可以使用变量 头下标:尾下标, 就可以截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以 为空表示取到头或尾。 s=a1a2an(n=0) S=ilovepython s1:5的结果是love。 2021/3/10讲解:XX20 Python列表 List(列表) 是 Python 中使用最频繁的数据类型。 列表可以完成大

12、多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表 (即嵌套)。 列表用 标识,是 python 最通用的复合数据类型。 列表中值的切割也可以用到变量 头下标:尾下标 ,就可以截取相应的列表,从左到右索引 默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。 加号 + 是列表连接运算符,星号 * 是重复操作。如下实例: 2021/3/10讲解:XX21 Python元组 元组是另一个数据类型,类似于List(列表)。 元组用()标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。 2021/3/10讲解:XX22 Python 字典 字典(di

13、ctionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象 结合,字典是无序的对象集合。 两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。 字典用 标识。字典由索引(key)和它对应的值value组成。 2021/3/10讲解:XX23 Python数据类型转换 函数描述 int(x ,base)将x转换为一个整数 long(x ,base )将x转换为一个长整数 float(x)将x转换到一个浮点数 complex(real ,imag)创建一个复数 str(x)将对象 x 转换为字符串 repr(x)将对象 x 转换为表达式字符串 ev

14、al(str)用来计算在字符串中的有效Python表达式,并返 回一个对象 tuple(s)将序列 s 转换为一个元组 list(s)将序列 s 转换为一个列表 set(s)转换为可变集合 dict(d)创建一个字典。d 必须是一个序列 (key,value) 元组。 frozenset(s)转换为不可变集合 chr(x)将一个整数转换为一个字符 unichr(x)将一个整数转换为Unicode字符 ord(x)将一个字符转换为它的整数值 hex(x)将一个整数转换为一个十六进制字符串 oct(x)将一个整数转换为一个八进制字符串 2021/3/10讲解:XX24 2.3 条件和循环 Pyth

15、on 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的 代码块。 Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。 Python 编程中 if 语句用于控制程序的执行,基本形式为 2021/3/10讲解:XX25 Python 循环语句 循环语句允许我们执行一个语句或语句组多次。 Python提供了for循环和while循环(在Python中没有do.while循环) 循环类型描述 while 循环 在给定的判断条件为 true 时执行循环 体,否则退出循环体。 for 循环重复执行语句 嵌套循环

16、你可以在while循环体中嵌套for循环 2021/3/10讲解:XX26 演示 Python while 语句执行过程 2021/3/10讲解:XX27 2.4 Python 函数 定义函数遵循的相关规则 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。 函数的第一行语句可以选择性地使用文档字符串用于存放函数说明。 函数内容以冒号起始,并且缩进。 return 表达式 结束函数,选择性地返回一个值给调用方。不带表达式的return 相当于返回 None。 函数是组织好的,可重复使用的,用来实现单一,或相关

17、联功能的代码段。 2021/3/10讲解:XX28 函数语法 实例 2021/3/10讲解:XX29 2.5 Python 模块 定义模块好处 模块让你能够有逻辑地组织你的 Python 代码段。 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。 模块能定义函数,类和变量,模块里也能包含可执行的代码。 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。 2021/3/10讲解:XX30 模块的引入 模块定义好后,我们可以使用 import 语句来引入模块,语法如下: 比如要引用模块 math,就可以在文件

18、最开始的地方用 import math 来引入。在调 用 math 模块中的函数时,必须这样引用: import module1, module2,. moduleN 模块名.函数名 2021/3/10讲解:XX31 2.6 Python文件I/O 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式。 此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下: 2021/3/10讲解:XX32 读取键盘输入 Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘。 二者区别 raw_input会提示你输入任意字符串,然后

19、在屏幕上显示相同的字符串。 input函数和 raw_input函数基本类似,但是 input 可以接收一个Python表达式作 为输入,并将运算结果返回。 raw_input input 2021/3/10讲解:XX33 打开和关闭文件 open 函数 你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法 才可以调用它进行读写。 语法: file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。 buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访 问文件时会寄存行。如果将bu

20、ffering的值设为大于1的整数,表明了这就是的寄存区 的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。 access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有 可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。 Python 提供了必要的函数和方法进行默认情况下的文件基本操作。你可以 用 file 对象做大部分的文件操作。 file object = open(file_name , access_mode, buffering) 2021/3/10讲解:XX34 close()方法 File 对象的 close()方法刷

21、新缓冲区里任何还没写入的信息,并关闭该文件,这之 后便不能再进行写入。当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。语法: fileObject.close(); 2021/3/10讲解:XX35 write()方法 write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符 串可以是二进制数据,而不是仅仅是文字。write()方法不会在字符串的结尾添加换行 符(n)。语法: fileObject.write(string); 2021/3/10讲解:XX36 read()方法 read()方法从一个打开的文件中读取一个字符串。需要重

22、点注意的是,Python字 符串可以是二进制数据,而不是仅仅是文字。语法: fileObject.read(count); 2021/3/10讲解:XX37 Python File(文件) 方法 序号 方法及描述 1file.close() 关闭文件。关闭后文件不能再进行读写操作。 2 file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写 入。 3 file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底 层操作上。 4file.isatty() 如果

23、文件连接到一个终端设备返回 True,否则返回 False。 5file.next() 返回文件下一行。 6file.read(size) 从文件读取指定的字节数,如果未给定或为负则读取所有。 7file.readline(size) 读取整行,包括 n 字符。 8 file.readlines(sizehint) 读取所有行并返回列表,若给定sizeint0,返回总和大约为sizeint字节的行, 实 际读取值可能比sizhint较大, 因为需要填充缓冲区。 9file.seek(offset, whence) 设置文件当前位置 10file.tell() 返回文件当前位置。 11file.

24、truncate(size) 截取文件,截取的字节通过size指定,默认为当前文件位置。 12file.write(str) 将字符串写入文件,没有返回值。 13file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。 2021/3/10讲解:XX38 python库 利用python进行数据分析工具 2021/3/10讲解:XX39 重要的Python库 NumPy:Numpy(Numerical Python的简称)是Python科学计算的基础包。 快速高效的多维数组对象ndarray 用于对数组执行元素级计算以及直接对数组执

25、行数学运算的函数 用于读写硬盘上基于数组的数据集的工具 线性代数运算、傅里叶变换、以及随机数生成 用于将C、C+、Fortran代码集成到Python的工具 除了为Python提供快速的数组处理能力,NumPy在数据分析方面还作为 在算法之间传递数据的容器 2021/3/10讲解:XX40 Pandas:pandas提供了使我们能够快速便捷地处理结构化数据的大量数据结构和 函数 Pandas兼具NumPy高性能的数据计算功能以及电子表格和关系型数据库(如 SQL)灵活的数据处理功能。提供了复杂精细的索引功能、一边更为便捷地 完成重塑、切片和切块、聚合以及选取数据子集等操作。 Pandas提供了

26、大量适用于金融数据的高性能时间序列功能和工具 2021/3/10讲解:XX41 其他的Python库 Matplotlib:matplotlib是最流行的用于绘制数据图标的Python库,实现数据可 视化。 IPython:Ipython是Python科学计算标准工具集的组成部分,它将其他所有的东 西联系到了一起,为交互是和探索式计算提供了一个强健而高效的环境。 SciPy:SciPy是一组专门解决科学计算中各种标准问题域的包的集合,包括 Segrate:数值积分例程和韦恩方程式求解器 Scipy.linalg:扩展了由numpy.linalg提供的线性代数例程和矩阵分解功能

27、Scipy.optimize:函数优化器(最小化器)以及根查找算法 Scipy.signal:信号处理工具 Scipy.sparse:稀疏矩阵和系数线性系统求解器 Scipy.special:SPECFUN(这是一个实现了许多常用数学函数(如伽马函数)的Fortran库)的包装器 Scipy.stats:标准连续的离散概率分布(如密度函数、采样器、连续分布函数等)、各种统计检验方法, 以及更好的描述统计法。 Scipy.weave:利用内敛C+代码加速数组计算的工具 2021/3/10讲解:XX42 常用第三方Python库安装和导入 安装 下载并安装Anaconda,它附带了预安装的库。 A

28、naconda Python 是完全免费、跨平台、企业级的Python发行大规模数据处理、预 测分析和科学计算工具。 PyCharm已经集成NumPy、Pandas、Matplotlib等常用库。 导入 import numpy as np from socket import gethostname, socket 2021/3/10讲解:XX43 3.1 NumPy库介绍 NumPy是高性能科学计算和数据分析的基础包。部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工

29、具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成C、C+、Fortran等语言编写的代码的工具。 首先要导入numpy库:import numpy as np 2021/3/10讲解:XX44 生成函数作用 np.array( x) np.array( x, dtype) 将输入数据转化为一个ndarray 将输入数据转化为一个类型为type的ndarray np.asarray( array )将输入数据转化为一个新的(copy)ndarray np.ones( N ) np.ones( N, dtype) np.ones_like( ndarray )

30、 生成一个N长度的一维全一ndarray 生成一个N长度类型是dtype的一维全一ndarray 生成一个形状与参数相同的全一ndarray np.zeros( N) np.zeros( N, dtype) np.zeros_like(ndarray) 生成一个N长度的一维全零ndarray 生成一个N长度类型位dtype的一维全零ndarray 类似np.ones_like( ndarray ) np.empty( N ) np.empty( N, dtype) np.empty(ndarray) 生成一个N长度的未初始化一维ndarray 生成一个N长度类型是dtype的未初始化一维nda

31、rray 类似np.ones_like( ndarray ) np.eye( N ) np.identity( N ) 创建一个N * N的单位矩阵(对角线为1,其余为0) np.arange( num) np.arange( begin, end) np.arange( begin, end, step) 生成一个从0到num-1步数为1的一维ndarray 生成一个从begin到end-1步数为1的一维ndarray 生成一个从begin到end-step的步数为step的一维ndarray np.in1d(ndarray, x,y,.)检查ndarray中的元素是否等于x,y,.中的一个

32、,返回bool数组 2021/3/10讲解:XX45 矩阵函数说明 np.diag( ndarray) np.diag( x,y,.) 以一维数组的形式返回方阵的对角线(或非对角线)元素 将一维数组转化为方阵(非对角线元素为0) np.dot(ndarray, ndarray)矩阵乘法 np.trace( ndarray)计算对角线元素的和 排序函数说明 np.sort( ndarray)排序,返回副本 np.unique(ndarray)返回ndarray中的元素,排除重复元素之后,并进行排序 ersect1d( ndarray1, ndarray2) np.union1d( n

33、darray1, ndarray2) np.setdiff1d( ndarray1, ndarray2) np.setxor1d( ndarray1, ndarray2) 返回二者的交集并排序。 返回二者的并集并排序。 返回二者的差。 返回二者的对称差 2021/3/10讲解:XX46 一元计算函数说明 np.abs(ndarray) np.fabs(ndarray) 计算绝对值 计算绝对值(非复数) np.mean(ndarray)求平均值 np.sqrt(ndarray)计算x0.5 np.square(ndarray)计算x2 np.exp(ndarray)计算ex log、log10、

34、log2、log1p计算自然对数、底为10的log、底为2的log、底为(1+x)的log np.sign(ndarray)计算正负号:1(正)、0(0)、-1(负) np.ceil(ndarray) np.floor(ndarray) np.rint(ndarray) 计算大于等于改值的最小整数 计算小于等于该值的最大整数 四舍五入到最近的整数,保留dtype np.modf(ndarray)将数组的小数和整数部分以两个独立的数组方式返回 np.isnan(ndarray)返回一个判断是否是NaN的bool型数组 np.isfinite(ndarray) np.isinf(ndarray)

35、返回一个判断是否是有穷(非inf,非NaN)的bool型数组 返回一个判断是否是无穷的bool型数组 cos、cosh、sin、sinh、tan、tanh普通型和双曲型三角函数 arccos、arccosh、arcsin、arcsinh、arctan、 arctanh 反三角函数和双曲型反三角函数 np.logical_not(ndarray)计算各元素not x的真值,相当于-ndarray 2021/3/10讲解:XX47 多元计算函数说明 np.add(ndarray, ndarray) np.subtract(ndarray, ndarray) np.multiply(ndarray,

36、 ndarray) np.divide(ndarray, ndarray) np.floor_divide(ndarray, ndarray) np.power(ndarray, ndarray) np.mod(ndarray, ndarray) 相加 相减 乘法 除法 圆整除法(丢弃余数) 次方 求模 np.maximum(ndarray, ndarray) np.fmax(ndarray, ndarray) np.minimun(ndarray, ndarray) np.fmin(ndarray, ndarray) 求最大值 求最大值(忽略NaN) 求最小值 求最小值(忽略NaN) np.copysign(ndarray, ndarray)将参数2中的符号赋予参数1 np.greater(ndarray, ndarray) np.greater_equal(ndarray, ndarray) np.less(ndarray, ndarray) np.less_equal(ndarray, ndarray) np.equal(ndarray, ndarray) np.not_equal(ndarray, ndarray) = 乘客ID Survived = 是否生还 Pclass = 乘客等级(1/2/3等舱 位) Name

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论