本书涵盖了Python在数值计算和数据处理领域的常用扩展库,如NumPy、SciPy、Pandas、Matplotlib等,以数据载入、数据清洗与规整、数据分析与可视化为主线,利用浅显易懂的语言、丰富有趣的实例和案例,全面、系统地介绍了科学计算、数据处理与分析的知识。
本书共7章,第1章主要介绍Python语言以及环境的搭建和使用;第2~3章介绍Numpy和Pandas扩展库的数据结构和常用函数;第4章主要介绍了Pandas数据处理的相关技术;第5章主要介绍了Matplotlib和pandas两种数据可视化技术。第6章通过两个具体的案例介绍数据处理、数据探索的流程和方法;第7章介绍了数值计算扩展库Scipy中的拟合和优化、插值、线性代数、数值积分模块。
浪潮产学合作项目
介绍Python的NumPy、SciPy、matplotlib等库,结合大量代码实例,详尽展示了NumPy、SciPy、matplotlib的强大科学计算、数据处理、数据显示能力。
尹红丽,2006年硕士毕业于山东大学,2016年博士毕业于青岛大学。2006年至今任教于齐鲁工业大学数学与统计学院。主持横向课题一项,参与横向课题一项,参与国家面上基金一项,指导国家大学生创新创业项目一项,主持协同育人项目一项,发表SCI、EI论文若干篇。2014年参编规划教材《数据结构》 大连理工出版社;2017年主编《Java基础与进阶》 中国建材工业出版社;2018年修订规划教材《数据结构》大连理工出版社。
第 1章 Python简介与环境安装 1
1.1 Python简介 1
1.1.1 为什么使用Python 1
1.1.2 Python2和Python3 1
1.2 Python环境安装 2
1.2.1 Anacanda安装 2
1.2.2 安装及更新Python包 4
1.3 IPython的使用 5
1.3.1 Python解释器 5
1.3.2 IPython是什么 5
1.3.3 安装IPython 5
1.3.4 IPython的使用 6
1.3.5 IPython的调试 14
1.4 Jupyter Notebook 17
1.4.1 Jupyter Notebook是什么 17
1.4.2 Jupyter Notebook的使用 17
习题 22
第 2章 NumPy基础 24
2.1 Python与数组的关系 24
2.2 N维数组对象ndarray 25
2.2.1 数组基本操作 26
2.2.2 数组生成函数 29
2.2.3 数组存取 34
2.2.4 结构体数组 41
2.2.5 数组高级操作 42
2.3 通用函数 54
2.3.1 算术运算 56
2.3.2 比较运算 57
2.3.3 逻辑运算 57
2.4 聚合函数 58
2.5 排序函数 59
2.5.1 np.sort 59
2.5.2 ndarray.sort 61
2.5.3 np.argsort 61
2.5.4 np.lexsort 62
2.5.5 np.searchsorted 63
2.6 随机数生成函数 65
2.6.1 np.random.uniform 66
2.6.2 np.random.rand 67
2.6.3 np.random.randint 67
2.6.4 np.random.normal 68
2.6.5 np.random.choice 69
2.6.6 np.random.shuffle 70
2.6.7 np.random.permutation 70
2.7 NumPy广播 70
习题 73
第3章 Pandas基础 75
3.1 Pandas数据结构 75
3.1.1 Series 75
3.1.2 DataFrame 79
3.2 索引对象 82
3.2.1 索引对象Index 83
3.2.2 层次化索引对象MultiIndex 84
3.3 数据存取 85
3.3.1 属性和字典存取 85
3.3.2 [ ]存取 86
3.3.3 loc和iloc存取 92
3.3.4 多级索引的存取 94
3.3.5 条件存取 97
3.4 Pandas字符串操作 98
3.4.1 字符串对象方法 99
3.4.2 正则表达式 102
3.4.3 Pandas中的向量化字符串函数 108
3.5 文件读写 110
3.5.1 CSV文件读写 111
3.5.2 Excel文件读写 117
3.5.3 HDF5文件读写 119
3.6 基本运算 122
3.6.1 算术运算 122
3.6.2 排序和排名 125
3.6.3 汇总和统计 128
习题 134
第4章 Pandas数据处理 135
4.1 数据清洗 135
4.1.1 处理缺失值 135
4.1.2 删除重复数据 139
4.1.3 删除列 141
4.1.4 重命名索引 142
4.2 数据规整 143
4.2.1 离散化和分箱 143
4.2.2 索引重塑和轴向旋转 144
4.2.3 分类数据处理 148
4.2.4 数据转换 151
4.2.5 数据合并 158
4.3 数据分组与聚合 166
4.3.1 GounpBy技术 167
4.3.2 数据聚合 173
4.3.3 透视表和交叉表 180
4.4 时间序列 182
4.4.1 日期和时间类型以及工具 183
4.4.2 时间序列基础 187
4.4.3 日期范围和偏移 189
4.4.4 时间区间和区间算术 192
4.4.5 时间序列方法 194
习题 201
第5章 数据可视化 203
5.1 Matplotlib简介 203
5.2 Matplotlib绘图 203
5.2.1 面向对象绘图流程 205
5.2.2 图片对象 205
5.2.3 子图 206
5.2.4 子图间距 208
5.3 Matplotlib快速绘图和面向对象绘图的区别 209
5.4 Matplotlib绘图设置 209
5.4.1 图像设置 209
5.4.2 坐标轴设置 216
5.4.3 图例设置 221
5.4.4 标注设置 222
5.4.5 网格设置 225
5.4.6 图表中使用中文 226
5.5 Pandas绘图 228
5.5.1 Pandas基础绘图 228
5.5.2设置字体和显示中文 232
5.5.3 Pandas绘图类型 232
习题 239
第6章 数据探索和分析 240
6.1泰坦尼克号数据探索和分析 240
6.1.1 载入数据 240
6.1.2 数据观察 240
6.1.3 数据处理 243
6.1.4 数据探索 245
6.2 IMDB电影数据探索和分析 250
6.2.1 载入数据 250
6.2.2 数据处理 251
6.2.3 数据探索和分析 259
习题 267
第7章 数值计算Scipy 269
7.1 拟合和优化 269
7.1.1 最小二乘拟合 269
7.1.2 函数极值求解 273
7.1.3 非线性方程组求解 277
7.2 插值库 278
7.2.1 一维插值 279
7.2.2 二维插值 281
7.2.3 插值法处理缺失值 282
7.3 线性代数 283
7.3.1线性方程组求解 283
7.3.2 最小二乘解 283
7.3.3 计算行列式 284
7.3.4 求逆矩阵 284
7.3.5 求取特征值与特征向量 284
7.3.6 SVD奇异值分解 285
7.4 数值积分 286
7.4.1 已知函数式求积分 286
7.4.2 已知采样数值求积分 288
7.4.3 解常微分方程组 289
习题 290