内容简介
Python语言简单易学,且有强大的AI(Artificial Intelligence,人工智能)支持库,是人工智能语言。本书围绕Python语言的这些特点,讲述Python语言基础语法、数据结构、程序结构、函数与模块、输入输出和面向对象程序设计等专题,同时结合每个专题精心编排了机器学统计参数计算、变量分布、优化计算、矩阵分析、线回归、线分类和人脸识别等人工智能案例实践。通过这些内容的学习,读者可以一方面掌握Python语言的语法; 另一方面又了解机器学基本原理,学会构建基本的机器学习系统。 本书教学资源丰富,配套有、源码、课件以及习题答案,可以作为高等院校程序设计课程的教材,也可以作为Python语言爱好者以及机器学自学参考书。
目录
目录第1章Python语言概述1.1语言1.2程序设计语言1.3程序设计语言的发展1.3.1代机器语言1.3.2代汇编语言1.3.3第三代语言1.3.4第四代非过程化语言1.4Python程序设计语言1.5Python语言的优势1.6Python环境1.6.1运行环境1.6.2开发环境1.7个机器学习小程序1.7.1波士顿房价数据集1.7.2数据预处理与训练1.7.3能评估1.8实验本章小结习题第2章基础语法2.1常用内置对象2.1.1基本数据类型2.1.2变量2.1.3常量2.1.4字符串2.1.5列表、元组、字典、集合2.2运算符与表达式2.2.1算术运算符2.2.2关系运算符2.2.3成员测试运算符in与同一测试运算符ir/>2.2.4位运算符与集合运算符2.2.5逻辑运算符2.2.6矩阵乘法运算符“@”2.3Python关键字2.4Python常用内置函数2.4.1类型转换2.4.2数学函数2.4.3input()和print()函数2.4.4sorted()和reversed()函数2.4.5enumerate()函数2.4.6map()和filter()函数2.4.7range()、zip()和eval()函数2.5Python编程规范2.6机器学统计参数2.6.1均值、方差和标准差2.6.2偏度、峰度和相关系数2.6.3距离2.7实验本章小结习题第3章数据结构3.1列表3.1.1列表r/>3.1.2列表常用方法3.1.3列表支持的运算符3.1.4内置函数对列表的r/>3.1.5列表推导式3.1.6切片r/>3.2元组3.2.1元组创建与元素访问3.2.2元组与列表的比较3.2.3生成器推导式3.3字典3.3.1字典创建与删除3.3.2字典元素的访问3.3.3元素添加、修改与删除3.3.4标准库collections中与字典有关的类3.4集合3.4.1集合对象的创建与删除3.4.2集合操作与运算3.5序列与3.6NumPy库中的array结构3.7机器学变量分布3.7.1两点分布3.7.2高斯分布3.7.3中心极限定理3.8实验本章小结习题第4章程序结构4.1条件表达式4.2分支结构4.2.1单分支结构4.2.2双分支结构4.2.3多分支结构4.2.4分支嵌套结构4.3循环结构4.3.1for循环语句与while循环语句4.3.2break语句与continue语句4.4机器学优化计算4.5实验本章小结习题第5章函数及模块5.1函数5.1.1函数定义5.1.2函数递归调用5.1.3函数参数5.1.4变量作用域5.1.5lambda表达式5.1.6生成器函数5.1.7关于__main__5.2模块、库5.2.1模块5.2.5.2.3库5.3异常处理5.3.1异常5.3.2异常处理5.4PyCharm单步跟踪5.5机器学矩阵分析5.5.1正规方程计算线模型参数5.5.2矩阵奇异值分解5.6实验本章小结习题第6章输入输出6.1文件读写6.1.1文件6.1.2文件r/>6.1.3文件操作案例6.2文件夹r/>6.3图形和图像输出6.3.1散点图6.3.2曲线图6.3.3三维曲线图6.3.4三维曲面图6.3.5其他有趣的图形6.3.6图像显示输出6.4数据库访问与存储6.4.1关系数据库6.4.2MySQL数据库管理系统6.4.3数据库r/>6.5机器学线回归6.6实验本章小结习题第7章面向对象程序设计7.1类的定义与使用7.2封装7.2.1私有成员和公有成员7.2.2属7.2.3方法7.3继承、多态7.3.1继承7.3.2多态7.4特殊方法7.5机器学线分类7.6实验本章小结习题第8章Python项目应用——人脸识别8.1人脸识别算法8.1.1人脸库8.1.2邻方法8.1.3主分量分析降维8.1.4Logistic回归方法8.2人脸识别系统8.3实验本章小结习题参考文献
摘要与插图
1.1语言
语言是人类进行沟通交流的表达方式。这里不是要给出它的文学定义,而是直观地类比生活中的自然语言,像人们日常所使用的汉语、英语等,这些语言都具有三个要素,即语音、语法和词汇。语言是由词汇按的语法所构成的语音表义系统。这里尤为关心的是,与即将要介绍的程序设计语言共的语法和词汇问题。学习语言一般是先学习一些词汇,词汇的组合形成短语,再把这些单词或者短语按照使用习惯也是语法,组织成一句完整的能够表达语义的句子,若干句子构成一篇表述某件事情或者论述某个观点的文章。这样的文章终是为了阅读交流,按照某一特定语言的语法书写和理解,自然交流没有障碍,沟通也没有问题。人类社会所使用的这种用于沟通交流的语言统称为自然语言。掌握不同语言的人们之间该怎么解决交流呢?正如联合国开会一样,各个国家代表团所用的语言不尽相同,这需要在不同语言之间进行翻译。人和计算机的交流怎么解决呢?人和计算机处于两个不同的世界,人和计算机之间的交流也需要语言来实现。人类社会使用的是自然语言,计算机使用的是机器语言,两者之间的差距可谓是天壤之别,好在有了翻译机制,一下子了人和计算机之间的距离。从自然语言到机器语言需要两步翻译,步将自然语言描述的任务或者算法翻译成程序设计语言编写的程序,完成这一步翻译非程序员莫属,这个现状少要维持到真正人工智能语言的出现,悲观一点地说在较长时间内都很难出现真正的人工智能语言,相反又可以乐观地说程序员在可预见的将来仍然是一种不可或缺的人才;步由程序设计语言程序翻译成机器语言程序,这是由各种程序设计语言的编译器或者解释器来完成的,这种编译器或解释器事先由语言的编写好,程序员可以直接使用。
1.2程序设计语言
程序设计语言(也称编程语言)是用于书写计算机程序的语言。既然是一门语言,那也具备语言的三要素,是语法和词汇,只不过语法和词汇的形式发生变化,同样可以用学习自然语言的方法学习程序设计语言。有了这样的认识能够减少初学者对于程序设计语言的畏惧,增强了初学者学好程序设计语言的信心。用自然语言书写的是文章,用程序设计语言编写的是程序。程序是能够在计算机中执行的指令的集合。这里要强调一点,程序能够在计算机上执行,但不是所有的程序设计语言书写的程序都能被计算机直接执行,为什么?这里涉及程序设计语言中一门具体的也是低级的语言——机器语言,也称为二进制语言。机器语言是机器能直接识别的程序语言或指令代码,无需经过翻译,每一操作码在计算机内部都由相应的电路来完成。机器语言使用地址和操作码。不同的计算机都有各自的机器语言,即指令系统。用机器语言编写的程序,即二进制代码,能够被计算机直接执行,但这种语言有一些缺陷,它是10010111…的二进制数值形式,与人或者说与程序员之间不友好,程序员也很难掌握,因此利用机器语言开发程序的效率比较低。试想,人记住一串数字方便还是记住一些有关联意义的字符串更方便呢?例如,清华大学出版社主页可以用域名.tup.tsinghua.edu./访问,也可以用IP地址124.17.26.243访问,一般记住域名会更加方便。此,稍微整理一下。程序设计语言是一种语言,机器语言是一种程序设计语言。程序设计语言除了机器语言这种低级的语言之外,还有其他种类的程序设计语言,如汇编、C、Java、Python等。好比自然语言中有好多语种,如英语、法语和汉语等,这些自然语言之间要交流都离不开翻译。这么多的程序设计语言(以下在不引的情况下称为语言)编写的程序要能够在计算机上执行,也离不开翻译,而且都要翻译成机器语言,执行这项翻译工作的程序称为翻译程序。翻译程序究竟在什么时候将程序转换成机器语言程序呢?不同的语言有不同的规定:有的语言要求必须提前将所有源代码一次地转换成二进制指令,也是生成一个可执行程序(Windows下的.exe),如C语言、C++、Golang、Pascal(Delphi)、汇编语言等,这些语言称为编译型语言,使用的翻译程序称为编译器。有的语言可以一边执行一边转换,需要哪些源代码转换哪些源代码,不会生成可执行程序,如Python、Javascript、PHP、Shell、MATLAB等,这些语言称为解释型语言,使用的翻译程序称为解释器。
……