深度学习原理与TensorFlow实践第5章Python编程基础课件_第1页
深度学习原理与TensorFlow实践第5章Python编程基础课件_第2页
深度学习原理与TensorFlow实践第5章Python编程基础课件_第3页
深度学习原理与TensorFlow实践第5章Python编程基础课件_第4页
深度学习原理与TensorFlow实践第5章Python编程基础课件_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、 第五章 Python编程基础第五章 Python编程基础Python环境搭建Python 安装Jupyter notebook 编程器安装使用 Python编程基础Python标识符Python标准数据类型Python语句Python运算符代码组Python流程控制Python 函数Python 模块 Python 类命名空间和作用域Python标准库Python机器学习库NumPySciPyPandasScikit-learnPython环境搭建-Python 安装 Python是Guido van Rossum发明的一种解释型、面向对象、动态数据类型的高级程序设计语言。 Python解释

2、器 和JAVA一样是跨平台的, 可以运行在Windows、Mac和各种Linux/Unix系统上。目前,Python解释器有两个版本- 2.x版和3.x版,这两个版本是不兼容的。 所以大量的针对2.x版本的代码要修改后才能在3.x版运行。TensorFlow要求3.x版,但基本安装使用与2.7版本相同。 Python 在Windows 、Mac、Linux 安装很简单。 Windows上的安装。 首先,从Python的官方网站下载最新的2.7版本。然后,运行下载的MSI安装包,在选择安装组件步骤时,勾上所有的组件。特别要注意选上pip和Add python.exe to Path,然后一直点“

3、Next”即可完成安装。安装目录是默认到C:Python27目录下(但你可以修改目录如:E:python27)。安装结束后,打开命令提示符窗口,敲入python后,出现提示符。这表示我们已经进入Python交互式环境中。 可以输入任何Python代码,回车后会立刻得到执行结果。 输入exit()并回车,就可以退出Python交互式环境。Python环境搭建-Jupyter notebook 编程器安装Python以后(pip也已安装),在命令行窗口输入:pip install jupyter。 如果 pip 不是最新版, 会有 pip升级提醒。 在这种情况下, 命令行输入 python -m

4、pip install -upgrade pip 升级pip到最新版。再一次命令行窗口输入: pip install jupyter, 会有successfully installedPython环境搭建-Jupyter notebook 编程器 jupyter 显示界面Python环境搭建-Jupyter notebook 编程器notebook 界面由以下部分组成:notebook 的名称。菜单栏,提供了保存、导出、重载 notebook,以及重启内核等选项。工具栏, 提供部分菜单栏功能的工具按钮使用方式。快捷键,提供菜单栏功能的键盘键组合使用方式。notebook 主要区域,包含了 no

5、tebook 的内容编辑区。Python环境搭建-Jupyter notebook 编程器 代码单元格(code cell),以 开头。在这种类型的单元格中,可以输入任意代码并执行。Python环境搭建-Jupyter notebook 编程器 jupyter notebook 的Python代码计算 Python环境搭建-Jupyter notebook 编程器更改Jupyter notebook的工作空间 在cmd中输入jupyter notebook -generate-config, 找到配置文件的位置。 # The directory to use for notebooks and

6、 kernels. #c.NotebookApp.notebook_dir = u 改为如下形式: c.NotebookApp.notebook_dir = e:pythontest保存单元格为.py程序文件。 File 菜单-download as -Python(.py)。将本地的.py文件上载到jupyter的一个单元格中 loadl test.py从网络上载代码到jupyter 例如,%load /mpl_examples/color/color_cycle_demo.pyjupyter运行python文件 %run test.py Python编程基础 -Python标识符Pytho

7、n标识符由英文字母、数字、下划线组成,但不能以数字开头。Python 中的标识符是大小写敏感的。以下划线开头的标识符是有特殊意义的。以单下划线开头 (如_foo)表示不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;以双下划线开头(如_foo ) 代表类的私有成员;以双下划线开头和结尾(如 _foo_)代表 Python 里专用的特殊方法标识,如 _init_() 代表类的构造函数。有时候单独单下划线在程序中会作为临时性的名称单独使用。_表示并不会在后面再次用到该名称以及它的值。 例如,下面的例子中, 循环体中对循环计数中的实际值并不需要,此

8、时就可以使用_。Python编程基础 -Python标准数据类型Numbers(数字):Python支持四种不同的数字类型:int(有符号整型)、long(长整型也可以代表八进制和十六进制)、float(浮点型)和complex(复数)。 String(字符串):python的字串列表有2种取值顺序,从左到右索引默认0开始的,最大范围是字符串长度减1 和从右到左索引默认-1开始的,最大范围是字符串开头。List(列表): 列表用 标识,是 python 最通用的复合数据类型。列表中值的切割也可以用到变量 头下标:尾下标 ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1

9、 开始,下标可以为空表示取到头或尾。加号 + 是列表连接运算符,星号 * 是重复操作。Tuple(元组):元组是另一个数据类型,类似于List(列表)。元组用()标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。Dictionary(字典):字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典用 标识。字典由索引(key)和它对应的值value组成。Python编程基础 Python语句Python语句中一般以新行作为语句的结束符。

10、但是我们可以使用斜杠( )将一行的语句分为多行显示,然而,语句中包含 , 或 () 括号就不需要使用多行连接符。 Python可以在同一行中使用多条语句,语句之间使用分号(;)分割。Python允许同时为多个变量赋值。例如:a = b = c = 1 。Python 可以使用引号( )、双引号( )、三引号( 或 ) 来表示字符串。但引号的开始与结束必须的相同类型的。 其中三引号可以由多行组成, 常用于文档字符串,在文件的特定地点,被当做注释。函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。 Python编程基础 Python运

11、算符 Python编程基础 Python运算符 Python编程基础 Python运算符 Python编程基础 Python运算符 Python编程基础 Python运算符 Python编程基础 Python运算符 Python编程基础 Python运算符 Python编程基础 代码组Python编程基础 Python流程控制Python编程基础 Python流程控制 Python编程基础 Python流程控制Python循环语句控制块-1,控制块-2Python编程基础 Python 函数Python编程基础 Python 函数 Python编程基础 Python 函数 Python编程基础

12、 Python 模块Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块逻辑地组织相关的 Python 代码段。 模块能定义函数、类和变量,模块里也能包含可执行的代码。这些可执行语句通常用来进行模块的初始化工作并且只在模块第一次被导入时执行。由于相同名字的函数和变量可以分别存在不同的模块中,不同的开发者使用各自模块可以避免函数名和变量名冲突。Python编程基础 Python 模块模块定义好后,我们可以使用 import 语句来引入模块,语法如下: import module1, module2,. modul

13、eN搜索路径 当导入一个模块,Python 解析器对模块位置的搜索顺序是: 1、当前目录 2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。 3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。 dir()函数 查看模块定义的名字可以使用dir()函数。 dir()函数返回的列表包含了一个模块中定义的所有模块、变量和函数。重新执行模块reload 当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。 如果需要重新执行模块里顶层部分的代码,可以用 reload()函数。该

14、函数会重新导入之前导入过的模块。 语法:reload(module_name) Python编程基础 Python 模块 Python编程基础 Python类类是面向对象编程引入的编程机制。类具有封装、继承的优点。类为编程语言中的类型,而类实例化后称为对象。类具有数据成员和方法。 从父类继承的方法可以重写,这个过程叫方法的覆盖(override)。 定义类:使用 class 语句来定义一个新类,class 之后为类的名称并以冒号结尾: class ClassName: 类的帮助信息 #类文档字符串 class_suite #类体类的帮助信息可以通过ClassName._doc_查看。class

15、_suite 由类成员,方法,数据属性组成。Python编程基础 Python类 Python编程基础 Python类Python 类方法 类内部,使用 def 关键字来定义一个方法。 Python中有3种方式定义类方法, 常规方式, classmethod修饰方式, staticmethod修饰方式。 常规方式与一般函数定义不同,常规类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例。 类方法(classmethod) 将self换成任意标识。静态方法(staticmethod)允许用“类名.静态方法名称”方式调用。 _init_ 为构造函数,在生成对象时调用,并赋予

16、成员变量初值。 两个下划线开头,声明的方法为私有方法(_private_method),不能在类外部调用。在类的内部通过self._private_methods调用。Python编程基础 Python类Python编程基础 Python类Python编程基础 Python类 Python类实例创建与调用 实例化类其他编程语言中一般用关键字 new,但是在 Python 中并没有这个关键字,类的实例化类似函数调用方式,类似x = MyClass()。如果定义了 _init_ 方法,采用x = MyClass(a,b,c,.) 并通过 _init_ 方法接收参数,如上例的t = teacher(

17、zhang shan,30,m,python,computer)。 使用形如“对象.属性”访问对象的属性,如例子中的print(c.radius);“对象.方法”访问对象的方法,如例子中的p.showinfo() 。 方法对象可以保存到以后使用。 Python编程基础 命名空间和作用域 命名空间和作用域一个 Python 表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量。每个函数都有自己的命名空间。类方法的作用域规则和函数相同。 Python假设任何在函数内赋值的变量都是局部的。因此,如果要给函数内的全局变量赋值,必须使用 glob

18、al 语句。global VarName 的表达式表示VarName 是一个全局变量。作用域为整个程序。 Python 3 增加了nonlocal ValuearName的表达式表示VarName 是作用域为嵌套的函数的最外层范围的一个变量;可以通过nonlocal 从内层修改外层的变量值。 Python有两个内置的函数locals() 和globals(),可以显示所有基于字典的局部和全局变量。 Python标准库 Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而Python标准库则提供了系统管理、网络通信、文本处理、数据库接口

19、、图形系统、XML处理等额外的功能。标准库具体使用方法可参考Python官网。 Python标准库的主要功能有:1) 文本处理,包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode支持、二进制数据处理等功能。2) 文件处理,包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能。3) 操作系统功能,包含线程与进程支持、IO复用、日期与时间处理、调用系统函数、日志(logging)等功能。4) 网络通信,包含网络套接字,SSL加密通信、异步网络通信等功能。5) 网络协议,支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多种网络协议,并提供了编写网络

20、服务器的框架。6) W3C格式支持,包含HTML,SGML,XML的处理。7) 其它功能,包括国际化支持、数学运算、HASH、Tkinter等。 Python 机器学习库-NumPyNumPy是一个开源的Python科学计算库,许多其他著名的科学计算库如Pandas、Scikit-learn等都要用到NumPy库的一些功能。其主要功能如下:1、ndarray,一个具有矢量运算和复杂广播能力的快速且节省空间的多维数组。2、用于对数组数据进行快速运算的标准数学函数。3、线性代数、随机数生成以及傅里叶变换功能。安装NumPy非常简单,只要命令行输入pip install numpy即可。 Pytho

21、n 机器学习库-NumPy NumPy ndarray是NumPy重要的对象,具有以下属性:ndarray.ndim:数组的维数(即数组轴的个数),等于秩。最常见的为二维数组(矩阵)。ndarray.shape:数组的维度。为一个表示数组在每个维度上大小的整数元组。例如二维数组中,表示数组的“行数”和“列数”。ndarray.shape返回一个元组,这个元组的长度就是维度的数目,即ndim属性。ndarray.size:数组元素的总个数,等于shape属性中元组元素的乘积。ndarray.dtype:表示数组中元素对象的类型,可使用标准的Python类型创建或指定dtype。ndarray.i

22、temsize:数组中每个元素的字节大小。例如,一个元素类型为float64的数组itemsiz属性值为8(float64占用64个bits,每个字节长度为8,所以64/8,占用8个字节),又如,一个元素类型为complex32的数组item属性为4(32/8)。ndarray.data:包含实际数组元素的缓冲区,指向数组开始部分。由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。 Python 机器学习库-NumPy Python 机器学习库-NumPy Ndarray对象的方法ndarray.ptp(axis=None, out=None) : 返回数组的最大值最小值或者某轴的最

23、大值最小值ndarray.clip(a_min, a_max, out=None) : 小于最小值的元素赋值为最小值,大于最大值的元素变为最大值。ndarray.all():如果所有元素都为真,那么返回真;否则返回假。ndarray.any():只要有一个元素为真则返回真。ndarray.swapaxes(axis1, axis2) : 交换两个轴的元素, ndarray.reshape(shape, order) :返回重命名数组大小后的数组,不改变元素个数。ndarray.resize(new_shape, refcheck) :改变数组的大小(可以改变数组中元素个数)。ndarray.t

24、ranspose(*axes) :返回矩阵的转置矩阵。ndarray.swapaxes(axis1, axis2) : 交换两个轴的元素后的矩阵。ndarray.flatten(order) : 复制一个一维的array。ndarray.ravel(order) :返回为展平后的一维数组。ndarray.squeeze(axis) :移除长度为1的轴。ndarray.tolist():将数组转化为列表。ndarray.take(indices, axis=None, out=None, mode=raise):获得数组的指定索引的数据。ndarray.put(a, ind, v, mode=r

25、aise):用v的值替换数组a中的ind(索引)的值。Mode可以为raise/wrap/clip。Clip:如果给定的ind超过了数组的大小,那么替换最后一个元素。ndarray.repeat(a, repeats, axis=None):重复数组的元素。numpy.tile(A, reps):根据给定的reps重复数组A,和repeat不同,repeat是重复元素,该方法是重复数组。ndarray.var(axis=None, dtype=None, out=None, ddof=0):返回数组的方差,沿指定的轴。ndarray.std(axis=None, dtype=None, out

26、=None, ddof=0):沿给定的轴返回数则的标准差d(axis=None, dtype=None, out=None):返回指定轴的所有元素乘积。 ndarray.cumprod(axis=None, dtype=None, out=None):返回指定轴的累积ndarray.mean(axis=None, dtype=None, out=None):返回指定轴的数组元素均值。ndarray.cumsum(axis=None, dtype=None, out=None):返回指定轴的元素累计和。ndarray.sum(axis=None, dtype=None, out=None):返回

27、指定轴所有元素的和。ndarray.trace(offset=0, axis1=0, axis2=1, dtype=None, out=None):返回沿对角线的数组元素之和。ndarray.round(decimals=0, out=None):将数组中的元素按指定的精度进行四舍五入。 ndarray.conj():返回所有复数元素的共轭复数。 ndarray.argmin(axis=None, out=None):返回指定轴最小元素的索引。ndarray.min(axis=None, out=None):返回指定轴的最小值。ndarray.argmax(axis=None, out=Non

28、e):返回指定轴的最大元素索引值。ndarray.diagonal(offset=0, axis1=0, axis2=1):返回对角线的所有元素。press(condition, axis=None, out=None):返回指定轴上条件下的切片。ndarray.nonzero():返回非零元素的索引。Python 机器学习库-NumPy创建数组的方法有很多。 如可以使用array函数从常规的Python列表和元组创造数组。所创建的数组类型由原序列中的元素类型推导而来。可使用双重序列来表示二维的数组,三重序列表示三维数组,以此类推。可以在创建时显式指定数组中元素的类型。数组0、数组1 用函数z

29、eros可创建一个全是0的数组,用函数ones可创建一个全为1的数组,函数empty创建一个依赖内存状态的随机数组。默认创建的数组类型(dtype)都是float64。NumPy提供arange函数和linspace函数返回一个数列形式的数组。 arange函数:参数一:起始值,参数二:结束值,参数三:步长 (arange可接收浮点数 ) linspace函数:参数一:起始数值,参数二:结束数值,参数三:结果个数。 Python 机器学习库-NumPy Python 机器学习库-NumPy Python 机器学习库-NumPy Python 机器学习库-NumPyNumPy概率分布 Pytho

30、n 机器学习库-NumPy Python 机器学习库- SciPyScipy是一个高级的科学计算库,它和NumPy联系很密切,Scipy一般都通过操控NumPy数组来进行科学计算,所以可以说Scipy是基于NumPy之上的库。Scipy有很多子模块可以应对不同的应用,例如插值运算、优化算法、图像处理、数学统计等。Scipy通过命令行进行安装:pip install scipy Python 机器学习库- SciPyPython 机器学习库- SciPy文件输入和输出:scipy.io 这个模块可以加载和保存matlab文件。线性代数操作:scipy.linalg 假如我们要计算一个方阵的行列式

31、,我们需要调用det()函数快速傅里叶变换:scipy.fftpack 。 一般地,我们用NumPy初始化正弦信号;然后,如果我们要计算该信号的采样频率,可以用scipy.fftpack.fftfreq()函数,计算它的快速傅里叶变换使用scipy.fftpack.fft() 。NumPy中也有用于计算快速傅里叶变换的模块:NumPy.fft ,但是scipy.fftpack性能要高一些。 优化器:scipy.optimize scipy.optimize通常用来最小化一个函数值 统计工具:scipy.statsPython 机器学习库- PandasPandas是一个提供快速处理、扩展和展现

32、数据结构的Python库。 是使用Python分析实际数据的模块。 Pandas是强大的可扩展的数据操作与分析开源工具。 主要的特性如下:为浮点数和与浮点数精度丢失提供了简易的处理方法。大数据的处理。自动而准确地处理数据队列。 能方便地转换不规则数据和差异数据。智能地处理大数据集的切片、子集。智能合并和连接数据集。灵活地调整数据集。Pandas安装:命令行输入pip install pandas。Python导入Pandas模块: import pandas ad pd。 Python 机器学习库- PandasPandas数据类型 Series 可以看做为一个定长的有序字典。 任意的一维基本

33、类型数据都可以用来构造 Series 对象;就如同列表一样,一个系列数据,其中每个数据对应一个索引值。 Series 就是“竖起来”的 listDataFrame 是一种二维的数据结构,非常接近于电子表格或者类似 mysql 数据库的形式。它的竖行称之为 columns,横行跟前面的 Series 一样,称之为 index,也就是说可以通过 columns 和 index 来确定一个单元数据的位置Python 机器学习库- Pandas文件操作 存储数据集 把Pandas数据保存为csv文件读取 csv 文件 读取csv文件为Pandas 数据Python 机器学习库- Pandas数据预处理数据清洗 对NA 数据的处理有 Dropna 放弃NA;fillna 填充为另一值数据合并 使用键参数的DataFrame合并数据变换 利用函数映射进行数据转换、用替换值对数据转换Python 机器学习库- Scikit-learnScikit-learn的基本功能主要有:分类,回归,聚类,数据降维,模型选择和数据预处理。 命令行输入Pip install Scikit-learn即可安装Scikit-learn。Python 机器学习库- S

温馨提示

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

评论

0/150

提交评论