本书全面地介绍了Python程序设计的核心技能,以及Python在数据分析、人工智能等领域的应用。全书共15章,分为三大部分:①Python核心技能,包括初识Python、程序设计入门、流程控制、字符串、组合数据类型、函数、文件操作7章;②数据分析技能,包括正则表达式、爬虫入门、科学计算入门之NumPy、数据分析入门之Pandas、数据可视化入门5章;③人工智能初步,包括面向对象程序设计、机器学习入门、深度学习入门3章。
本书图文并茂、示例丰富,以“任务驱动”的方式在实际应用中讲解Python的要点,并且将程序设计在线评测系统引入了教学,让读者及时评估自己的水平。本书配有丰富的学习资源,包括视频、PPT、速查表、电子教案、习题、习题解析等,读者可以登录机械工业出版社教育服务网(http://www.cmpedu.com)免费下载。
本书可以作为应用型本科计算机、人工智能、大数据相关专业的教材,也可以作为Python程序设计、数据分析、人工智能入门的培训教材,还可以作为广大程序设计爱好者的自学参考书。
前言
第1章 初识Python1
1.1 Python语言概述1
1.1.1 Python简史1
1.1.2 Python 2和
Python 32
1.1.3 Python的特点2
1.1.4 胶水语言3
1.1.5 Python的应用3
1.1.6 学好Python的关键4
1.2 Python语言开发环境配置5
1.2.1 使用云端开发环境
Jupyter Notebook
(米筐)6
1.2.2 安装一站式开发环境
Anaconda7
1.3 Jupyter Notebook的使用8
1.4 探索Python:乘方、阶乘和
单词统计12
1.5 小结13
1.6 习题13
第2章 程序设计入门15
2.1 计算生态与导入库和函数15
2.1.1 计算生态15
2.1.2 导入库和函数★16
2.2 结构化程序的框架17
2.2.1 程序的基本处理流程IPO17
2.2.2 任务:计算圆的周长和面积18
2.3 Python程序语法特点分析18
2.3.1 Python的基本语法元素18
2.3.2 多行语句21
2.4 Python的6种核心数据类型21
2.5 可变类型和不可变类型22
2.6 数字类型和算术运算23
2.7 程序在线评测系统及基本使用25
2.7.1 程序在线评测系统26
2.7.2 程序评测系统中的Hello
World:A+B问题26
2.7.3 基本输入/输出函数26
2.8 小结29
2.9 习题29
第3章 流程控制32
3.1 分支结构的3种形式32
3.2 解释型语言的特点34
3.3 for循环35
3.3.1 遍历容器35
3.3.2 函数range36
3.3.3 多重循环:九九乘法表和水仙花数38
3.4 罗塞塔石碑语言学习法39
3.5 while循环和流程图41
3.6 改变循环执行流程:break和continue42
3.7 程序的异常处理43
3.8 小结45
3.9 习题46
第4章 字符串49
4.1 字符串的基本知识49
4.1.1 字符串界定符:单引号、
双引号和三重引号49
4.1.2 使用反斜杠转义49
4.1.3 抑制转义使用raw50
4.2 序列的索引和切片★51
4.3 字符串的基本操作52
4.3.1 序列操作53
4.3.2 常用的字符串方法53
4.3.3 匹配字符串的前缀和后缀55
4.3.4 切分和合并字符串★55
4.4 字符串格式化和输出语句56
4.5 中文分词和jieba库57
4.6 小结58
4.7 习题59
第5章 组合数据类型61
5.1 组合数据类型:序列、集合和映射61
5.2 List列表:批量处理62
5.2.1 列表的常用操作62
5.2.2 列表的遍历和排序64
5.2.3 列表的引用和复制65
5.3 tuple 元组:不可变、组合66
5.4 dict字典:按键取值68
5.5 set集合:去重71
5.6 列表生成式★72
5.7 生成器表达式和惰性求值74
5.8 小结74
5.9 习题75
第6章 函数78
6.1 认识函数78
6.2 使用函数实现机器翻译80
6.3 函数的参数82
6.3.1 可选参数和默认值82
6.3.2 位置参数传递82
6.3.3 关键字参数传递83
6.3.4 不定长参数83
6.4 函数式编程和高阶函数85
6.5 匿名函数lambda★86
6.6 常用高阶函数:map、reduce和filter86
6.7 递归函数88
6.8 变量的作用域 LEGB原则90
6.8.1 函数被调用的次数90
6.8.2 斐波那契函数优化1:全局字典91
6.8.3 斐波那契函数优化2:内嵌函数91
6.9 小结91
6.10 习题92
第7章 文件操作96
7.1 认识文件96
7.2 文本文件及读写操作97
7.2.1 读取文件全文97
7.2.2 按行读取文件98
7.2.3 实现文件的编码格式转换98
7.2.4 使用with-as语句99
7.3 处理表格数据(CSV)的3种方法100
7.4 存储半结构化数据:JSON101
7.5 常用文件模块os和shutil102
7.6 模块和包105
7.7 小结107
7.8 习题107
第8章 正则表达式109
8.1 正则表达式简介109
8.2 Python中的常用正则函数109
8.2.1 正则函数初步使用110
8.2.2 查找所有匹配(re.findall)111
8.2.3 查找第一个匹配(re.search)112
8.2.4 替换(re.sub)114
8.3 RegexOne的闯关游戏115
8.3.1 闯关:通配符116
8.3.2 闯关:排除特定字符116
8.3.3 闯关:重复次数117
8.4 编译模式re.compile和匹配参数117
8.5 小结118
8.6 习题118
第9章 爬虫入门120
9.1 网络爬虫简介及基本处理流程120
9.1.1 网络爬虫的概念120
9.1.2 使用爬虫的风险120
9.1.3 网络爬虫的基本处理流程121
9.2 实战:Pandas获取中国企业500强榜单122
9.3 使用requests库获取网页123
9.4 使用BeautifulSoup4库解析网页124
9.4.1 从节点中提取信息125
9.4.2 获取节点的主要方式126
9.5 实战:爬取唐诗三百首128
9.6 小结131
9.7 习题131
第10章 科学计算入门之NumPy132
10.1 科学计算和NumPy132
10.2 NumPy的基本对象133
10.2.1 代码向量化133
10.2.2 通用函数ufunc133
10.3 统计函数的应用:分析学生成绩134
10.4 核心数据结构:多维数组135
10.5 使用NumPy表示和处理图像137
10.6 小结139
10.7 习题140
第11章 数据分析入门之Pandas141
11.1 从Excel到Pandas:制作产品销售数据表141
11.2 DataFrame的基本操作143
11.2.1 查看DataFrame对象的方法和属性143
11.2.2 DataFrame的基础数据结构 Series145
11.2.3 列名操作:查看和修改146
11.3 DataFrame的常用操作146
11.3.1 设置和重置索引146
11.3.2 切片148
11.3.3 条件选择150
11.3.4 排序150
11.4 分组聚合:日常费用统计表151
11.5 小结155
11.6 习题155
第12章 数据可视化入门157
12.1 Matplotlib的基本用法157
12.1.1 Python绘图基础:Matplotlib157
12.1.2 实例:绘制正弦曲线157
12.1.3 实例:2017年全球GDP
排名前4的国家158
12.2 Matplotlib的两种接口159
12.2.1 MATLAB风格接口159
12.2.2 面向对象接口160
12.3 使用Pandas可视化数据160
12.4 简捷作图工具:seaborn162
12.5 词云图164
12.5.1 英文词云实例:爱丽丝梦游仙境164
12.5.2 中文词云实例:《促进新一代人工智能产业发展三年行动计划》词云图166
12.6 小结167
12.7 习题167
第13章 面向对象程序设计170
13.1 认识面向对象编程170
13.1.1 面向对象编程170
13.1.2 面向对象的优点170
13.1.3 OOP术语概述171
13.2 类和对象171
13.2.1 实例:采用面向过程和面向对象的程序设计处
理学生成绩171
13.2.2 类的构成173
13.2.3 类的专有方法173
13.2.4 实例属性和类属性174
13.2.5 类方法和静态方法174
13.3 数据封装175
13.4 继承177
13.4.1 继承的优点:代码重用177
13.4.2 重载方法178
13.5 多态179
13.6 运算符重载180
13.7 小结181
13.8 习题181
第14章 机器学习入门183
14.1 初识机器学习183
14.1.1 机器学习:新的编程范式183
14.1.2 入门示例:预测房屋价格184
14.1.3 机器学习处理流程186
14.1.4 机器学习库sklearn187
14.1.5 机器学习的分类188
14.2 分类实战:预测鸢尾花的类型189
14.2.1 鸢尾花数据集描述189
14.2.2 数据探索189
14.2.3 使用kNN模型预测192
14.2.4 数据集的划分:训练集、验证集、测试集193
14.2.5 分类模型的评价指标194
14.2.6 k折交叉验证196
14.3 回归实战:预测波士顿房价197
14.3.1 波士顿房价问题描述197
14.3.2 获取内置数据集的基本信息198
14.3.3 数据探索199
14.3.4 使用线性回归模型预测201
14.3.5 回归模型的评价指标202
14.4 欠拟合和过拟合203
14.5 机器学习常用方法简要介绍203
14.6 小结205
14.7 习题206
第15章 深度学习入门207
15.1 初识深度学习207
15.1.1 深度学习的历史207
15.1.2 推动深度学习的三驾马车:硬件、数据和算法208
15.1.3 机器学习、深度学习
和人工智能209
15.1.4 深度学习框架209
15.2 神经网络实战:印第安人糖尿病诊断211
15.2.1 任务描述211
15.2.2 多层神经网络的实现211
15.3 神经网络的基本原理214
15.3.1 神经元:权重、偏差和激活函数214
15.3.2 多层神经网络215
15.3.3 损失函数和优化器216
15.4 实战:识别手写数字217
15.4.1 任务描述:MNIST手写数字217
15.4.2 多层神经网络的实现218
15.4.3 卷积神经网络的实现221
15.5 卷积神经网络223
15.5.1 图像的3个特点223
15.5.2 卷积神经网络的结构224
15.5.3 卷积神经网络的两个特征225
15.5.4 卷积层:卷积核和特征图226
15.5.5 池化层226
15.5.6 全连接层227
15.6 小结227
15.7 习题228
参考文献230