源码下载
第1章Python语言与开发环境概述
1.1Python语言的特点
1.2Python的下载与安装
1.3开始使用Python
1.3.1交互方式
1.3.2代码文件方式
1.3.3代码文件的打开
1.3.4代码风格
1.4模块与库
1.4.1模块及其导入方式
1.4.2标准模块与第三方模块
1.5使用帮助
1.6Anaconda简介
1.6.1Anaconda模块的安装
1.6.2Spyder的使用
1.6.3Jupyter Notebook的使用
1.6.4Jupyter Notebook默认路径的设置
1.6.5任意路径下创建Jupyter Notebook文件
习题1
第2章Python语言基础
2.1控制台的输入与输出
2.1.1数据的输入
2.1.2数据的输出
2.2标识符、变量与赋值语句
2.2.1标识符
2.2.2变量
2.2.3赋值语句
2.3常用数据类型
2.3.1数值类型
2.3.2布尔类型
2.3.3常用序列类型
2.3.4映射类型
2.3.5集合类型
2.4运算符与表达式
2.4.1运算符分类
2.4.2运算规则与表达式
2.4.3条件表达式
2.4.4复合赋值运算符
2.5分支结构
2.5.1单分支if语句
2.5.2双分支if/else语句
2.5.3多分支if/elif/else语句
2.5.4分支结构的嵌套
2.5.5分支结构的三元运算
2.5.6match/case分支结构
2.6循环结构
2.6.1简单的while循环结构
2.6.2简单的for循环结构
2.6.3break语句和continue语句
2.6.4循环的嵌套
2.7常用组合类型
2.7.1列表
2.7.2元组
2.7.3列表与元组之间的相互生成
2.7.4字符串
2.7.5字典
2.7.6集合
2.7.7推导式
2.7.8常用的内置函数
2.8正则表达式
习题2
第3章函数
3.1函数的定义
3.2函数的调用
3.3形参与实参
3.4函数的返回
3.5位置参数与关键参数
3.6默认参数
3.7个数可变的参数
3.7.1以组合对象为形参接收多个实参
3.7.2以组合对象为实参给多个形参分配参数
3.7.3形参和实参均为组合类型
3.8参数与返回值类型注解
3.9lambda表达式
3.10函数式编程的常用类与函数
习题3
第4章自定义类与对象
4.1Python中的对象与方法
4.2类的定义与对象的创建
4.3类的继承
4.3.1父类与子类
4.3.2继承的语法
4.3.3子类继承父类的属性
4.3.4子类继承父类的方法
习题4
第5章NumPy数据处理基础
5.1数据结构
5.1.1利用numpy.array()函数创建数组
5.1.2访问数组对象属性
5.1.3数组对象的类型
5.1.4创建常用数组
5.2数据准备
5.2.1随机数的生成
5.2.2NumPy数组在文本文件中的存取
5.3常用数组运算与函数
5.3.1数组的索引
5.3.2数组的切片
5.3.3改变数组的形状
5.3.4数组对角线上替换新元素值
5.3.5用np.newaxis或None插入一个维度
5.3.6数组的基本运算
5.3.7数组的排序
5.3.8数组的组合
5.3.9数组的分割
5.3.10随机打乱数组中的元素顺序
5.3.11多维数组的展开
5.3.12其他常用函数与对象
5.4使用NumPy进行简单统计分析
5.5数组在其他文件中的存取
5.5.1数组在无格式二进制文件中的存取
5.5.2数组在npy文件中的存取
5.5.3数组在npz文件中的存取
5.5.4数组在hdf5文件中的存取
习题5
第6章Matplotlib数据可视化基础
6.1绘制基本图形
6.1.1折线图
6.1.2线条属性的设置
6.1.3图标题、坐标轴标题和坐标轴范围的设置
6.1.4绘制多图与图例的设置
6.1.5散点图
6.1.6直方图
6.1.7饼图
6.2绘制多轴图
6.2.1用subplot()函数绘制多轴图
6.2.2用subplot2grid()函数绘制多轴图
6.2.3多轴图的轴展开与遍历
6.3坐标轴的刻度标签
6.4坐标轴的主次刻度、网格设置
6.5移动坐标轴
6.6文字说明和注释
6.7显示图片
6.8日期作为横坐标
6.9绘制横线与竖线作为辅助线
6.9.1使用hlines()和vlines()函数绘制辅助线
6.9.2使用axhline()和axvline()函数绘制辅助线
6.10绘制其他二维图表
6.10.1箱线图
6.10.2小提琴图
6.10.3热力图
6.10.4填充图
6.10.5等高线图
6.11绘制三维图表
6.11.1三维折线图
6.11.2三维散点图
6.11.3三维曲面图
习题6
第7章Pandas数据处理与分析
7.1数据结构与基本操作
7.1.1Series基础
7.1.2DataFrame基础
7.2文件与数据库中存取DataFrame对象
7.2.1csv文件中存取DataFrame对象
7.2.2Excel文件中存取DataFrame对象
7.2.3数据库中存取DataFrame对象
7.3常用函数与方法
7.3.1用drop()删除指定的行或列
7.3.2用append()添加元素
7.3.3用unique()去除重复元素
7.3.4用Series.map()实现数据替换
7.3.5用apply()将指定函数应用于数据
7.3.6用applymap()将指定函数应用于元素
7.3.7用replace()替换指定元素
7.3.8用align()对齐两个对象的行列
7.3.9用groupby()实现分组
7.3.10用assign()添加新列
7.3.11用where()筛选与替换数据
7.3.12用value_counts()统计元素出现的次数或频率
7.3.13用pivot()按指定列值重新组织数据
7.3.14用pivot_table()创建数据透视图
7.3.15用idxmax()/idxmin()获取*大值/*小值所在的行或列
标签
7.4DataFrame对象的数据清洗与处理
7.4.1用concat()根据行列标签合并数据
7.4.2数据排序
7.4.3记录排名
7.4.4记录抽取
7.4.5重建索引
7.4.6根据新索引填充新位置的值
7.4.7缺失值处理
7.4.8重复值处理
7.4.9数据转换与替代
7.4.10数据计算
7.4.11用merge()根据列内容或行标签合并数据对象
7.4.12combine()基于指定函数合并数据
7.4.13combine_first()用一个对象更新另一个对象中的空值
7.5时间处理
7.5.1Python标准库中的时间处理
7.5.2用dateutil解析字符串格式的日期
7.5.3Pandas中的时间数据处理
7.5.4时间作为行或列的标签
7.5.5根据时间频率重新采样
7.6移动数据与时间索引
7.7统计分析
7.7.1基本统计分析
7.7.2相关分析
7.8Pandas中的绘图方法
7.8.1绘图基本接口plot()
7.8.2其他绘图函数
习题7
第8章机器学习方法概述与数据加载
8.1机器学习概述
8.1.1用有监督学习做预测
8.1.2用无监督学习发现数据之间的关系
8.2scikitlearn的简介与安装
8.2.1scikitlearn的安装
8.2.2scikitlearn中的数据表示
8.2.3scikitlearn中的机器学习基本步骤
8.3加载数据
8.3.1加载scikitlearn中的小数据集
8.3.2下载并加载scikitlearn中的大数据集
8.3.3用scikitlearn构造仿真数据集
8.3.4加载scikitlearn中的其他数据集
8.3.5通过pandasdatareader导入金融数据
8.3.6通过第三方平台API加载数据
8.4划分数据分别用于训练和测试
8.5scikitlearn中机器学习的基本步骤示例
8.5.1有监督分类学习步骤示例
8.5.2有监督回归学习步骤示例
8.5.3无监督聚类学习步骤示例
8.6scikitlearn编程接口的风格
习题8
第9章数据预处理
9.1特征的离散化
9.1.1使用NumPy中的digitize()函数离散化
9.1.2使用Pandas中的cut()函数离散化
9.2识别与处理异常值
9.3特征值的MinMax缩放
9.4特征值的标准化
9.5特征值的稳健缩放
9.6无序分类数据的热编码
9.7有序分类数据编码
9.8每个样本特征值的正则化
习题9
第10章模型评估与轨道
10.1模型评估的基本方法
10.1.1监督学习下的泛化、过拟合与欠拟合
10.1.2模型评估指标
10.1.3交叉验证
10.2轨道的创建与使用
10.2.1创建和使用轨道
10.2.2交叉验证中使用轨道
习题10
第11章有监督学习之分类与回归
11.1分类与回归概述
11.2线性回归
11.2.1普通线性回归
11.2.2岭回归使用l2正则化减小方差
11.2.3Lasso回归使用l1正则化减小特征个数
11.2.4同时使用l1和l2正则化的弹性网络
11.2.5多项式回归
11.3逻辑回归与岭回归实现线性分类
11.3.1单标签二分类
11.3.2单标签多分类
11.3.3通过正则化降低过拟合
11.4支持向量机用于分类和回归
11.4.1支持向量机线性分类
11.4.2支持向量机非线性分类
11.4.3支持向量机回归模型
11.5朴素贝叶斯分类
11.6决策树用于分类和回归
11.6.1决策树用于分类
11.6.2决策树用于回归
习题11
第12章集成学习
12.1投票法集成
12.1.1投票分类器
12.1.2投票回归器
12.2bagging/pasting法集成
12.2.1bagging/pasting分类器
12.2.2bagging/pasting回归器
12.2.3随机森林
12.2.4极端随机树集成
12.3提升法集成
12.3.1AdaBoost
12.3.2梯度提升
12.3.3XGBoost
12.3.4基于直方图的梯度提升
12.4堆叠法集成
12.4.1StackingClassifer集成分类
12.4.2StackingRegressor集成回归
习题12
第13章无监督学习之聚类与降维
13.1用k均值算法基于相似性聚类
13.2层次聚类
13.3基于密度的聚类
13.4聚类性能的评估
13.4.1数据带真实标签的聚类评估
13.4.2数据不带真实标签的聚类评估
13.5无监督的降维
13.5.1主成分分析
13.5.2核主成分分析
习题13
第14章超参数调优与模型选择
14.1搜索超参数来选择模型
14.1.1基于循环语句的网格搜索
14.1.2划分验证集避免过拟合
14.1.3带交叉验证的网格搜索
14.1.4带交叉验证的随机搜索
14.1.5搜索多个不同特征的空间
14.2对轨道中的超参数进行搜索
14.3搜索算法和超参数
习题14
参考文献