推荐教材:
《Python数据分析、挖掘与可视化》(慕课版)(ISBN:978-7-115-52361-7),董付国,人民邮电出版社,定价49.8元,2020年1月出版,2021年3月第6次印刷
主要内容:全书共264页。
目录
第1章 Python开发环境搭建与编码规范8
本章学习目标8
1.1 Python开发环境搭建与使用8
1.1.1 IDLE8
1.1.2 Anaconda310
1.1.3 安装扩展库12
1.2 Python编码规范13
1.3 标准库、扩展库对象的导入与使用15
1.3.1 import 模块名[ as 别名]15
1.3.2 from 模块名 import 对象名[ as 别名]15
1.3.3 from 模块名 import *16
本章知识要点16
本章习题17
第2章 数据类型、运算符与内置函数18
本章学习目标18
2.1 常用内置数据类型18
2.1.1 整数、实数、复数19
2.1.2 列表、元组、字典、集合20
2.1.3 字符串21
2.2 运算符与表达式22
2.2.1 算术运算符22
2.2.2 关系运算符24
2.2.3 成员测试运算符25
2.2.4 集合运算符25
2.2.5 逻辑运算符26
2.3 常用内置函数26
2.3.1 类型转换28
2.3.2 最大值、最小值29
2.3.3 元素数量、求和30
2.3.4 排序、逆序31
2.3.5 基本输入输出32
2.3.6 range()32
2.3.7 zip()33
2.3.8 map()、reduce()、filter()33
2.4 综合应用与例题解析35
本章知识要点36
本章习题37
第3章 列表、元组、字典、集合与字符串38
本章学习目标38
3.1 列表与列表推导式38
3.1.1 创建列表38
3.1.2 使用下标访问列表中的元素39
3.1.3 列表常用方法39
3.1.4 列表推导式41
3.1.5 切片操作42
3.2 元组与生成器表达式43
3.2.1 元组与列表的区别43
3.2.2 生成器表达式43
3.2.3 序列解包44
3.3 字典44
3.3.1 字典元素访问45
3.3.2 字典元素修改、添加与删除46
3.4 集合46
3.4.1 集合概述46
3.4.2 集合常用方法47
3.5 字符串常用方法47
3.5.1 encode()47
3.5.2 format()48
3.5.3 index()、rindex()、count()49
3.5.4 replace()、maketrans()、translate()49
3.5.5 ljust()、rjust()、center()50
3.5.6 split()、rsplit()、join()50
3.5.7 lower()、upper()、capitalize()、title()、swapcase()50
3.5.8 startswith()、endswith()51
3.5.9 strip()、rstrip()、lstrip()51
3.6 综合应用与例题解析51
本章知识要点53
本章习题54
第4章 选择结构、循环结构、函数定义与使用55
本章学习目标55
4.1 选择结构55
4.1.1 条件表达式55
4.1.2 单分支选择结构55
4.1.3 双分支选择结构56
4.1.4 嵌套的分支结构56
4.2 循环结构57
4.2.1 for循环57
4.2.2 while循环57
4.2.3 break与continue语句57
4.3 函数定义与使用58
4.3.1 函数定义基本语法58
4.3.2 lambda表达式58
4.3.3 递归函数59
4.3.4 生成器函数59
4.3.5 位置参数、默认值参数、关键参数、可变长度参数60
4.3.6 变量作用域61
4.4 综合应用与例题解析61
本章知识要点63
本章习题64
第5章 文件操作65
本章学习目标65
5.1 文件操作基础65
5.1.1 内置函数open()65
5.1.2 文件对象常用方法66
5.1.3 上下文管理语句with66
5.2 JSON文件操作67
5.3 CSV文件操作67
5.4 Word、Excel、PowerPoint文件操作实战68
本章知识要点70
本章习题71
第6章 numpy数组与矩阵运算73
本章学习目标73
6.1 numpy数组及其运算73
6.1.1 创建数组73
6.1.2 测试两个数组的对应元素是否足够接近75
6.1.3 修改数组中的元素值76
6.1.4 数组与标量的运算76
6.1.5 数组与数组的运算77
6.1.6 数组排序78
6.1.7 数组的内积运算78
6.1.8 访问数组中的元素79
6.1.9 数组对函数运算的支持80
6.1.10 改变数组形状80
6.1.11 数组布尔运算81
6.1.12 分段函数82
6.1.13 数组堆叠与合并83
6.2 矩阵生成与常用操作84
6.2.1 生成矩阵84
6.2.2 矩阵转置84
6.2.3 查看矩阵特征85
6.2.4 矩阵乘法86
6.2.5 计算相关系数矩阵86
6.2.6 计算方差、协方差、标准差87
6.3 计算特征值与特征向量87
6.4 计算逆矩阵88
6.5 求解线性方程组89
6.6 计算向量和矩阵的范数90
6.7 奇异值分解91
6.8 函数向量化92
本章知识要点93
本章习题93
第7章 pandas数据分析实战96
本章学习目标96
7.1 pandas常用数据类型96
7.1.1 一维数组与常用操作97
7.1.2 时间序列与常用操作100
7.1.3 二维数组DataFrame103
7.2 DataFrame数据处理与分析实战105
7.2.1 读取Excel文件中的数据106
7.2.2 筛选符合特定条件的数据107
7.2.3 查看数据特征和统计信息110
7.2.4 按不同标准对数据排序112
7.2.5 使用分组与聚合对员工业绩进行汇总114
7.2.6 处理超市交易数据中的异常值118
7.2.7 处理超市交易数据中的缺失值119
7.2.8 处理超市交易数据中的重复值121
7.2.9 使用数据差分查看员工业绩波动情况122
7.2.10 使用透视表与交叉表查看业绩汇总数据123
7.2.11 使用重采样技术按时间段查看员工业绩127
7.2.12 多索引相关技术与操作128
7.2.13 使用标准差与协方差分析员工业绩130
7.2.14 使用pandas的属性接口实现高级功能133
7.2.15 绘制各员工在不同柜台业绩平均值的柱状图136
7.2.16 查看DataFrame的内存占用情况137
7.2.17 数据拆分与合并138
本章知识要点142
本章习题143
第8章 sklearn机器学习实战145
本章学习目标145
8.1 机器学习基本概念145
8.2 机器学习库sklearn简介151
8.2.1 扩展库sklearn常用模块与对象151
8.2.2 选择合适的模型和算法155
8.3 线性回归算法原理与应用155
8.3.1 线性回归模型原理155
8.3.2 sklearn中线性回归模型的简单应用156
8.3.3 岭回归原理与sklearn实现157
8.3.4 套索回归Lasso基本原理与sklearn实现158
8.3.5 弹性网络基本原理与sklearn实现159
8.3.6 使用线性回归模型预测儿童身高160
8.4 逻辑回归算法原理与应用161
8.4.1 逻辑回归算法原理与sklearn实现161
8.4.2 使用逻辑回归算法预测考试能否及格164
8.5 朴素贝叶斯算法原理与应用164
8.5.1 基本概念164
8.5.2 朴素贝叶斯算法分类原理与sklearn实现167
8.5.3 使用朴素贝叶斯算法对中文邮件进行分类168
8.6 决策树与随机森林算法应用170
8.6.1 基本概念170
8.6.2 决策树算法原理与sklearn实现171
8.6.3 随机森林算法原理与sklearn实现174
8.6.4 使用决策树算法判断学员的Python水平176
8.7 支持向量机算法原理与应用178
8.7.1 支持向量机算法基本原理与sklearn实现178
8.7.2 使用支持向量机对手写数字图像进行分类182
8.8 KNN算法原理与应用184
8.8.1 KNN算法基本原理与sklearn实现184
8.8.2 使用KNN算法判断交通工具类型187
8.9 KMeans聚类算法原理与应用188
8.9.1 KMeans聚类算法基本原理与sklearn实现188
8.9.2 使用KMeans算法压缩图像颜色191
8.10 分层聚类算法原理与应用193
8.11 DBSCAN算法原理与应用196
8.12 使用协同过滤算法进行电影推荐199
8.13 关联规则分析原理与应用201
8.13.1 关联规则分析原理与基本概念201
8.13.2 使用关联规则分析演员关系202
8.14 数据降维205
8.15 交叉验证与网格搜索207
8.15.1 使用交叉验证评估模型泛化能力208
8.15.2 使用网格搜索确定模型最佳参数210
本章知识要点212
本章习题214
第9章 matplotlib数据可视化实战215
本章学习目标215
9.1 数据可视化库matplotlib基础215
9.2 绘制折线图实战216
9.3 绘制散点图实战220
9.4 绘制柱状图实战223
9.5 绘制饼状图实战227
9.6 绘制雷达图实战230
9.7 绘制三维图形实战233
9.8 绘图区域切分实战240
9.9 设置图例样式实战242
9.10 事件响应与处理实战246
9.11 填充图形260
9.12 保存绘图结果262
本章知识要点263
本章习题264
习题答案265
附表1 运算符、内置函数对常用内置对象的支持情况276
附录2 Python关键字清单277
附表3 常用标准库对象速查表278
附录4 常用Python扩展库清单281
参考资料282
配套资源:教学大纲、PPT、教案、源码、测试数据、习题答案、66课690分钟视频、智慧树网慕课、课堂管理系统。
《Python数据分析、挖掘与可视化》前3章书稿PDF免费阅读
《Python数据分析、挖掘与可视化》教学大纲(参考)
===============
(1)算术乘法,整数、实数、复数、高精度实数之间的乘法。
(2)列表、元组、字符串这几种类型的对象与整数之间的乘法,表示对列表、元组或字符串进行重复,返回新列表、元组、字符串。
需要特别注意的是,列表、元组、字符串与整数相乘,是对其中的元素的引用进行复用,如果元组或列表中的元素是列表、字典、集合这样的可变对象,得到的新对象与原对象之间会互相干扰。
(3)numpy数组与数字num相乘,表示原数组中每个数字与num相乘,返回新数组,类似的规则也适用于加、减、真除、整除、幂运算等。
(4)numpy数组与类似于数组的对象(array-like,包括Python列表、元组和numpy数组)相乘(同样适用于加、减、真除、整除和幂运算),需要满足广播的条件:两个数组的shape属性的元组右对齐之后要求两个元组在垂直方向的两个数字要么相等、要么其中一个为1、要么其中一个对应位置上没有数字(没有对应的维度),结果数组中该维度的大小与二者之中最大的一个相等。在(3)中介绍的数组与标量的四则运算实际上也属于广播。例如,(m,n)的数组可以和(1,)、(n,)、(1,n)、(m,1)、(m,n)的数组进行相乘。
下面再演示几种可以广播的情况:
(5)numpy数组与array-like对象的点积,通过numpy数组的dot()方法或numpy的dot()函数实现。
数组与标量相乘,等价于乘法运算符或numpy.multiply()函数:
如果两个数组是长度相同的一维数组,计算结果为两个向量的内积:
如果两个数组是形状分别为(m,n)和(n,)的二维数组和一维数组,计算结果为二维数组每行分别与一维数组的内积组成的数组:
如果一个任意多维数组和一个一维数组(要求大小与多维数组最后一个维度相等)相乘,多维数组的最后一个维度分别与一维数组计算内积,计算内积的维度消失:
如果两个数组是形状分别为(m,k)和(k,n)的二维数组,表示两个矩阵相乘,结果为(m,n)的二维数组,此时一般使用等价的矩阵乘法运算符@或者numpy的函数matmul():
如果一个n维数组和一个m(>=2)维数组进行dot()运算,第一个数组的最后一个维度与第二个数组的倒数第二个维度计算内积。
在这种情况下,第一个数组的最后一个维度和第二个数组的倒数第二个维度将会消失,如下图所示,划红线的维度消失:
6)numpy矩阵与矩阵相乘时,运算符*和@功能相同,都表示线性代数里的矩阵乘法。
7)连乘,计算所有数值相乘的结果,可以使用标准库函数math.prod(),Python 3.8之后支持。
扩展库函数numpy.prod()提供了更强大的功能。
8)累乘,每个数字与前面的所有数字相乘,可以使用扩展库函数numpy.cumprod()
温馨提示:
关注微信公众号“Python小屋”,在公众号后台发送消息“大事记”可以查看董付国老师与Python有关的重要事件;发送消息“教材”可以查看董付国老师出版的Python系列教材(累计印刷超过120次)的适用专业详情;发送消息“历史文章”可以查看董付国老师推送的超过1000篇原创技术文章;发送消息“会议”或“培训”可以查看近期董付国老师的培训安排;发送消息“微课”可以查看董付国老师免费分享的超过500节Python微课视频;发送消息“课件”可以查看董付国老师免费分享的Python教学资源;发送消息“小屋刷题”可以下载“Python小屋刷题神器”,免费练习1318道客观题和259道编程题,题库持续更新;发送消息“编程比赛”了解Python小屋编程大赛详情。