本书以图文并茂的方式介绍了Python的基础内容,并深入浅出地介绍了数据分析和机器学习领域的相关入门知识。第1章至第5章以极简方式讲解了Python的常用语法和使用技巧,包括数据类型与程序控制结构、自建Python模块与第三方模块、Python函数和面向对象程序设计等。第6章至第8章介绍了数据分析必备技能,如NumPy、Pandas和Matplotlib。第9章和第10章主要介绍了机器学习的基本概念和机器学习框架sklearn的基本用法。对人工智能相关领域、数据科学相关领域的读者而言,本书是一本极简入门手册。对于从事人工智能产品研发的工程技术人员,本书亦有一定的参考价值。
Author(s): 张玉宏
Publisher: 电子工业出版社
Year: 2020
Language: Chinese
Pages: 567
City: 北京
版权
推荐语
前言
目录
第1章 初识Python与Jupyter
1.1 Python概要
1.1.1 为什么要学习Python
1.1.2 Python中常用的库
1.2 Python的版本之争
1.3 安装Anaconda
1.3.1 Linux环境下的Anaconda安装
1.3.2 conda命令的使用
1.3.3 Windows环境下的Anaconda安装
1.4 运行Python
1.4.1 验证Python
1.4.2 Python版本的Hello World
1.4.3 Python的脚本文件
1.4.4 代码缩进
1.4.5 代码注释
1.5 Python中的内置函数
1.6 文学化编程——Jupyter
1.6.1 Jupyter的由来
1.6.2 Jupyter的安装
1.6.3 Jupyter的使用
1.6.4 Markdown编辑器
1.7 Jupyter中的魔法函数
1.7.1 %lsmagic函数
1.7.2 %matplotlib inline函数
1.7.3 %timeit函数
1.7.4 %%writefile函数
1.7.5 其他常用的魔法函数
1.7.6 在Jupyter中执行shell命令
1.8 本章小结
1.9 思考与提高
第2章 数据类型与程序控制结构
2.1 为什么需要不同的数据类型
2.2 Python中的基本数据类型
2.2.1 数值型(Number)
2.2.2 布尔类型(Boolean)
2.2.3 字符串型(String)
2.2.4 列表(List)
2.2.5 元组(Tuple)
2.2.6 字典(Dictionary)
2.2.7 集合(Set)
2.3 程序控制结构
2.3.1 回顾那段难忘的历史
2.3.2 顺序结构
2.3.3 选择结构
2.3.4 循环结构
2.4 高效的推导式
2.4.1 列表推导式
2.4.2 字典推导式
2.4.3 集合推导式
2.5 本章小结
2.6 思考与提高
第3章 自建Python模块与第三方模块
3.1 导入Python标准库
3.2 编写自己的模块
3.3 模块的搜索路径
3.4 创建模块包
3.5 常用的内建模块
3.5.1 collection模块
3.5.2 datetime模块
3.5.3 json模块
3.5.4 random模块
3.6 本章小结
3.7 思考与提高
第4章 Python函数
4.1 Python中的函数
4.1.1 函数的定义
4.1.2 函数返回多个值
4.1.3 函数文档的构建
4.2 函数参数的“花式”传递
4.2.1 关键字参数
4.2.2 可变参数
4.2.3 默认参数
4.2.4 参数序列的打包与解包
4.2.5 传值还是传引用
4.3 函数的递归
4.3.1 感性认识递归
4.3.2 思维与递归思维
4.3.3 递归调用的函数
4.4 函数式编程的高阶函数
4.4.1 lambda表达式
4.4.2 filter()函数
4.4.3 map()函数
4.4.4 reduce()函数
4.4.5 sorted()函数
4.5 本章小结
4.6 思考与提高
第5章 Python高级特性
5.1 面向对象程序设计
5.1.1 面向过程与面向对象之辩
5.1.2 类的定义与使用
5.1.3 类的继承
5.2 生成器与迭代器
5.2.1 生成器
5.2.2 迭代器
5.3 文件操作
5.3.1 打开文件
5.3.2 读取一行与读取全部行
5.3.3 写入文件
5.4 异常处理
5.4.1 感性认识程序中的异常
5.4.2 异常处理的三步走
5.5 错误调试
5.5.1 利用print()输出观察变量
5.5.2 assert断言
5.6 本章小结
5.7 思考与提高
第6章 NumPy向量计算
6.1 为何需要NumPy
6.2 如何导入NumPy
6.3 生成NumPy数组
6.3.1 利用序列生成
6.3.2 利用特定函数生成
6.3.3 Numpy数组的其他常用函数
6.4 N维数组的属性
6.5 NumPy数组中的运算
6.5.1 向量运算
6.5.2 算术运算
6.5.3 逐元素运算与张量点乘运算
6.6 爱因斯坦求和约定
6.6.1 不一样的标记法
6.6.2 NumPy中的einsum()方法
6.7 NumPy中的“轴”方向
6.8 操作数组元素
6.8.1 通过索引访问数组元素
6.8.2 NumPy中的切片访问
6.8.3 二维数组的转置与展平
6.9 NumPy中的广播
6.10 NumPy数组的高级索引
6.10.1 “花式”索引
6.10.2 布尔索引
6.11 数组的堆叠操作
6.11.1 水平方向堆叠hstack()
6.11.2 垂直方向堆叠vstack()
6.11.3 深度方向堆叠hstack()
6.11.4 列堆叠与行堆叠
6.11.5 数组的分割操作
6.12 NumPy中的随机数模块
6.13 本章小结
6.14 思考与提高
第7章 Pandas数据分析
7.1 Pandas简介
7.2 Pandas的安装
7.3 Series类型数据
7.3.1 Series的创建
7.3.2 Series中的数据访问
7.3.3 Series中的向量化操作与布尔索引
7.3.4 Series中的切片操作
7.3.5 Series中的缺失值
7.3.6 Series中的删除与添加操作
7.3.7 Series中的name属性
7.4 DataFrame类型数据
7.4.1 构建DataFrame
7.4.2 访问DataFrame中的列与行
7.4.3 DataFrame中的删除操作
7.4.4 DataFrame中的“轴”方向
7.4.5 DataFrame中的添加操作
7.5 基于Pandas的文件读取与分析
7.5.1 利用Pandas读取文件
7.5.2 DataFrame中的常用属性
7.5.3 DataFrame中的常用方法
7.5.4 DataFrame的条件过滤
7.5.5 DataFrame的切片操作
7.5.6 DataFrame的排序操作
7.5.7 Pandas的聚合和分组运算
7.5.8 DataFrame的透视表
7.5.9 DataFrame的类SQL操作
7.5.10 DataFrame中的数据清洗方法
7.6 泰坦尼克幸存者数据预处理
7.6.1 数据集简介
7.6.2 数据集的拼接
7.6.3 缺失值的处理
7.7 本章小结
7.8 思考与提高
第8章 Matplotlib与Seaborn可视化分析
8.1 Matplotlib与图形绘制
8.2 绘制简单图形
8.3 pyplot的高级功能
8.3.1 添加图例与注释
8.3.2 设置图形标题及坐标轴
8.3.3 添加网格线
8.3.4 绘制多个子图
8.3.5 Axes与Subplot的区别
8.4 散点图
8.5 条形图与直方图
8.5.1 垂直条形图
8.5.2 水平条形图
8.5.3 并列条形图
8.5.4 叠加条形图
8.5.5 直方图
8.6 饼图
8.7 箱形图
8.8 误差条
8.9 绘制三维图形
8.10 与Pandas协作绘图——以谷歌流感趋势数据为例
8.10.1 谷歌流感趋势数据描述
8.10.2 导入数据与数据预处理
8.10.3 绘制时序曲线图
8.10.4 选择合适的数据可视化表达
8.10.5 基于条件判断的图形绘制
8.10.6 绘制多个子图
8.11 惊艳的Seaborn
8.11.1 pairplot(对图)
8.11.2 heatmap(热力图)
8.11.3 boxplot(箱形图)
8.11.4 violin plot(小提琴图)
8.11.5 Density Plot(密度图)
8.12 本章小结
8.13 思考与提高
第9章 机器学习初步
9.1 机器学习定义
9.1.1 什么是机器学习
9.1.2 机器学习的三个步骤
9.1.3 传统编程与机器学习的差别
9.1.4 为什么机器学习不容易
9.2 监督学习
9.2.1 感性认识监督学习
9.2.2 监督学习的形式化描述
9.2.3 损失函数
9.3 非监督学习
9.4 半监督学习
9.5 机器学习的哲学视角
9.6 模型性能评估
9.6.1 经验误差与测试误差
9.6.2 过拟合与欠拟合
9.6.3 模型选择与数据拟合
9.7 性能度量
9.7.1 二分类的混淆矩阵
9.7.2 查全率、查准率与F1分数
9.7.3 P-R曲线
9.7.4 ROC曲线
9.7.5 AUC
9.8 本章小结
9.9 思考与提高
第10章 sklearn与经典机器学习算法
10.1 机器学习的利器————sklearn
10.1.1 sklearn简介
10.1.2 sklearn的安装
10.2 线性回归
10.2.1 线性回归的概念
10.2.2 使用sklearn实现波士顿房价预测
10.3 k-近邻算法
10.3.1 算法简介
10.3.2 k值的选取
10.3.3 特征数据的归一化
10.3.4 邻居距离的度量
10.3.5 分类原则的制定
10.3.6 基于sklearn的k-近邻算法实战
10.4 Logistic回归
10.4.1 为什么需要Logistic回归
10.4.2 Logistic源头初探
10.4.3 Logistic回归实战
10.5 神经网络学习算法
10.5.1 人工神经网络的定义
10.5.2 神经网络中的“学习”本质
10.5.3 神经网络结构的设计
10.5.4 利用sklearn搭建多层神经网络
10.6 非监督学习的代表——k均值聚类
10.6.1 聚类的基本概念
10.6.2 簇的划分
10.6.3 k均值聚类算法核心
10.6.4 k均值聚类算法优缺点
10.6.5 基于sklearn的k均值聚类算法实战
10.7 本章小结
10.8 思考与提高