登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2024年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2024年12月出版新書

2024年11月出版新書

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

『簡體書』Python数据分析与可视化实践

書城自編碼: 4057743
分類: 簡體書→大陸圖書→教材研究生/本科/专科教材
作者: 孙玉林,余本国
國際書號(ISBN): 9787302673576
出版社: 清华大学出版社
出版日期: 2024-11-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 505

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
唤醒孩子的学习力3:掌握有效的学习技能
《 唤醒孩子的学习力3:掌握有效的学习技能 》

售價:NT$ 332.0
变富:如何有效积累足够的财富
《 变富:如何有效积累足够的财富 》

售價:NT$ 403.0
大宋西军
《 大宋西军 》

售價:NT$ 398.0
这才是真正的诸葛亮
《 这才是真正的诸葛亮 》

售價:NT$ 347.0
嫉妒
《 嫉妒 》

售價:NT$ 250.0
文明的碎片(西蒙·沙玛重磅新作!)
《 文明的碎片(西蒙·沙玛重磅新作!) 》

售價:NT$ 500.0
别读博,会脱单
《 别读博,会脱单 》

售價:NT$ 265.0
甲骨文丛书·德意志与神圣罗马帝国(第1卷):从马克西米利安一世到《威斯特伐利亚和约》(1493~1648年)(全2册)
《 甲骨文丛书·德意志与神圣罗马帝国(第1卷):从马克西米利安一世到《威斯特伐利亚和约》(1493~1648年)(全2册) 》

售價:NT$ 1109.0

編輯推薦:
用理论结合实际案例,通过配套视频的操作讲解,让读者学到的不仅是相应的知识和技能,更是使用函数公式解决问题的基本逻辑原理和逻辑思维,以及解决问题的能力。用函数公式巧妙灵活的解决烦琐的大数据,让工作简单化智能化,高效便捷的提升工作效率
內容簡介:
Python 数据分析与可视化实践基于 Python 语言,结合实际的数据集,介绍如何对数据进行可视化分析。Python 数据分析与可视化实践主要包含 3 个 部分。第一部分为 Python 数据可视化基础篇:主要介绍 Python 基础内容、Numpy 和 Pandas 数据操作, 以及 Matplotlib 数据可视化内容;第二部分为 Python 数据可视化提高篇:主要介绍 Python 的 Seaborn、 plotnine、Networkx、igraph、plotly、Bokeh、pyecharts 库中的数据可视化功能;第三部分为 Python 数据 可视化分析实战篇:通过 4 个完整的数据可视化分析案例,详细地介绍了 Python 中数据分析、机器学习 与可视化相结合的应用等内容。 本书为读者提供了 Notebook 形式的源程序和使用的数据集,方便读者对程序的使用和运行。本书适 合有一定数据分析或统计分析基础的读者阅读,可作为 Python 数据分析、机器学习、数据可视化的入门 及实践教材,也可供数据分析与可视化相关专业的师生,以及对数据分析与可视化感兴趣的 Python 用户
目錄
第一部分Python数据可视化基础篇
第1章Python快速入门2
11 安装Python 2
111 安装Anaconda 2
112 安装Python库 5
12 Python的基础知识 5
121 列表 6
122 元组 8
123 字典 9
124 集合 10
125 字符串 11
13 Python的语法结构 12
131 条件判断语句 12
132 循环语句 13
133 try/except语句 14
14 Python函数 15
141 函数 15
142 lambda函数 16
15 数据可视化分析 16
151 什么是好的数据可视化 16
152 数据可视化图像的基本类型 17
153 数据可视化分析基本流程 18
154 Python进行数据可视化分析的优势 18
16 本章小结 19
第2章 Numpy与Pandas的数据操作和可视化20
21 Numpy数据操作 21
211 生成数组的方式 21
212 数组的基础操作 23
213 Numpy的常用函数 27
22 Pandas数据的生成和读取 34
221 序列和数据表的生成 34
222 数据索引 36
223 数据读取 38
23 Pandas数据操作 39
231 数据表的合并 39
232 数据表的转换 40
233 数据表的聚合和分组计算 42
234 处理时间数据 43
24 Pandas数据可视化 44
241 Pandas的数据可视化函数 45
242 Pandas数据可视化实战 45
25 本章小结 50
第3章 Matplotlib数据可视化51
31 Matplotlib的两种数据可视化方式 52
311 类似Matlab风格的数据可视化方式 52
312 面向对象风格的数据可视化方式 53
313 设置正确显示中文的方法 55
32 Matplotlib的图表组成元素 57
321 plot函数的使用 58
322 设置坐标系取值范围和类型 60
323 设置坐标轴刻度标签 62
324 设置网格线和参考线 63
325 添加注释和文本、使用公式、设置图例 64
33 Matplotlib可视化子图 66
331 pltaxes函数设置子图位置 66
332 pltsubplot函数创建网格子图 67
333 pltsubplots函数创建网格子图 70
334 pltGridSpec函数对网格进行更复杂排列 71
34 Matplotlib可视化函数 72
341 类别比较图形可视化函数 72
342 数据关系图形可视化函数 78
343 数据分布图形可视化函数 80
344 其他图形可视化函数 83
35 Matplotlib可视化三维图像 88
351 三维点图和三维线图 88
352 三维等高线图 90
353 三维曲面图和曲线图 90
36 本章小结 91
第二部分Python数据可视化提高篇
第4章 Python经典的静态数据可视化库93
41 Seaborn数据可视化 93
411 关系型数据可视化函数 95
412 分布型数据可视化函数 101
413 分类型数据可视化函数 105
414 热力图数据可视化函数 108
415 网格数据可视化 110
42 plotnine数据可视化 110
421 几何图层 111
422 图表美化 116
423 位置调整 118
424 图像分面与子图 120
43 本章小结 124
第5章 网络图可视化125
51 网络图的形式 125
52 Networkx网络图可视化 126
521 Networkx生成网络图 126
522 Networkx设置节点和边 132
523 Networkx设置布局方式 135
524 Networkx可视化复杂网络图 138
53 igraph网络图可视化 143
531 igraph生成并可视化网络图 143
532 igraph设置节点和边 145
533 igraph设置节点的布局方式 148
534 igraph可视化特定的路线 149
54 本章小结 152
第6章 plotly交互式数据可视化153
61 plotly简介 154
62 plotly数值型变量数据可视化 154
621 单个数值型变量数据可视化 154
622 两个数值型变量数据可视化 156
623 三个数值型变量数据可视化 159
624 多个连续数值型变量数据可视化 163
63 plotly分类型变量数据可视化 167
631 单个分类型变量数据可视化 167
632 多个分类型变量数据可视化 168
64 plotly数值型和分类型变量数据可视化 171
641 单个数值型和单个分类型变量数据可视化 171
642 多个数值型和单个分类型变量数据可视化 173
643 单个数值型和多个分类型变量数据可视化 177
65 plotly其他类型数据可视化 180
651 可交互网络图可视化 180
652 时序数据可视化 185
66 本章小结 186
第7章 Python其他交互式数据可视化库187
71 Bokeh交互式数据可视化 187
711 Bokeh的简介与设置 187
712 Bokeh数据可视化 188
72 pyecharts交互式数据可视化 196
721 pyecharts的简介与设置 196
722 pyecharts数据可视化 198
73 本章小结 211
第三部分Python数据可视化分析实战篇
第8章 足球运动员数据可视化分析213
81 数据清洗与预处理 214
82 数据探索性可视化分析 218
821 可视化分析足球运动员年龄与价值之间的关系 219
822 可视化分析足球运动员年龄和综合评分之间的关系 224
823 可视化分析联盟和俱乐部的足球运动员信息 225
824 可视化分析多个变量之间的关系 231
825 与球场位置相关的数据可视化分析 233
83 数据降维可视化分析 238
831 主成分降维 238
832 可视化主成分得分 240
84 数据聚类可视化分析 242
841 寻找合适的聚类数目 242
842 K均值聚类可视化 243
843 利用主成分特征进行聚类分析 244
85 本章小结 247
第9章 抗乳腺癌候选药物可视化分析248
91 数据特征探索性可视化分析 251
911 药物的性质特征探索性可视化分析 252
912 药物的生物活性探索性可视化分析 254
913 药代动力学性质和安全性探索性可视化分析 257
92 数据特征选择 257
921 根据回归互信息筛选特征 257
922 通过随机森林回归模型选择特征 259
93 回归模型预测生物活性 260
931 建立多元线性回归模型 262
932 建立支持向量机回归模型 267
933 建立GBDT回归模型 268
94 分类模型预测药代动力学性质和安全性 269
941 心脏毒性预测 270
942 遗传毒性预测 273
95 本章小结 277
第10章 时序数据的异常值检测和预测278
101 时序数据探索性可视化分析 279
1011 时序数据的分布情况可视化分析 280
1012 时序数据的波动情况可视化分析 281
102 异常值检测 284
1021 ADTK检测单列时序数据的异常值 284
1022 ADTK检测多列时序数据的异常值 287
1023 Prophet检测单列时序数据的异常值 289
1024 基于VAR模型检测多列时序数据的异常值 291
103 异常值预测 297
1031 Prophet算法检测数据中的异常值 297
1032 提取异常值数据特征 299
1033 异常值预测分类模型 301
1034 数据平衡后建立分类模型 303
104 趋势预测 305
1041 单变量预测的SARIMA模型 306
1042 单变量预测的Prophet模型 308
1043 多变量预测的VAR模型 310
105 本章小结 312
第11章 中药材鉴别数据可视化分析313
111 无监督学习算法鉴别中药材类别 314
1111 数据特征探索性可视化分析 315
1112 使用数据原始的特征进行聚类 317
1113 使用数据降维后的特征进行聚类 320
112 有监督学习算法鉴别中药材产地 324
1121 不同产地的中药材特征可视化分析 325
1122 利用选择的特征进行分类 325
113 半监督学习算法鉴别中药材类别 330
1131 数据预处理和可视化分析 330
1132 数据主成分降维 332
1133 使用标签传播算法进行分类 334
1134 半监督学习分类——利用SelfTrainingClassier 336
114 本章小结 338
內容試閱
Python是目前热门的编程语言。它的优点是免费和开源。随着Python的不断发展,它已经在数据分析与数据可视化领域受到了众多学者和企业的关注,并且提供了很多丰富的库。本书重点研究如何使用Python中的库,与数据分析、数据可视化相结合,以便分析实际场景中的数据,挖掘数据中的信息。
本书分为3部分11章。其中,第1~3章是Python数据可视化基础篇,介绍了Python的使用,以及Numpy、Pandas、Matplotlib的使用;第4~7章是Python数据可视化提高篇,以经典的Python可视化库为基础,介绍了Python的Seaborn、plotnine、Networkx、igraph、plotly、Bokeh、pyecharts库中的数据可视化功能的应用;第8~11章是Python数据可视化分析实战篇,介绍了4个完整的数据可视化分析案例。
本书尽可能做到内容全面与循序渐进,其中程序代码通过Jupyter Notebook展示,并通过经典案例的可视化分析,使没有Python基础知识的读者也能看懂本书的内容。
第1章为Python快速入门。本章从通过Anaconda安装Python开始,介绍了Python的基础内容,以及Python中的控制语句与函数等的使用,最后介绍了数据可视化分析的基本流程、图表的类型等。
第2章为Numpy与Pandas的数据操作和可视化。本章介绍了Numpy和Pandas的使用,包括数据生成、读取、操作、变换等,以及Pandas中的数据可视化函数的使用。
第3章为Matplotlib数据可视化。本章介绍了Matplotlib的数据可视化功能,包括Matplotlib的数据可视化方式、Matplotlib的图表组成元素、可视化子图方式、库中常用的数据可视化函数,以及可视化三维图像等。
第4章为Python经典的静态数据可视化库。本章主要介绍了Python中两个经典数据可视化库——Seaborn与plotnine,并将这两个库中的函数与实际数据相结合,展示这两个库的数据可视化功能。
第5章为网络图可视化。本章主要介绍了Python中两个经典网络图可视化库——Networkx与igraph,主要内容包括如何设置网络图中的节点、边,以及网络图的布局等,并针对网络图中信息挖掘,介绍如何计算网络图中的最短路径,以及路径的可视化。
第6章为plotly交互式数据可视化。本章主要介绍了交互式数据可视化库——plotly,并根据不同类型可视化图像,介绍了plotly中的相关函数的使用。
第7章为Python其他交互式数据可视化库。本章主要介绍了Python中两个交互式数据可视化库——Bokeh和pyecharts,并介绍了如何使用这两个库中相关函数获得可交互的图表。
第8章为足球运动员数据可视化分析。本章使用了一个具体的数据集进行一个完整的数据可视化分析流程,主要内容包括数据获取、数据清洗与预处理、数据探索性可视化分析、数据建模可视化分析等。
第9章为抗乳腺癌候选药物可视化分析。本章使用了一个抗乳腺癌候选药物可视化分析案例,主要内容包括特征选择与可视化、回归分析与可视化、二分类模型与可视化。
第10章为时序数据的异常值检测和预测。本章主要介绍了一个真实的时序数据应用案例,主要内容包括时序数据的可视化分析、异常值检验与预测等。
第11章为中药材鉴别数据可视化分析。本章介绍了一个中药材鉴别数据可视化分析案例,主要内容包括使用聚类算法对数据进行无监督学习,使用分类算法对数据进行有监督学习,将数据主成分降维与标签传播算法相结合对数据进行半监督学习。
由于作者水平有限,编写时间仓促,书中难免存在疏漏和错误,敬请读者不吝赐教。
海南省自然科学基金资助(supported by Hainan Provincial Natural Science Foundation of China)项目批准号:822RC713
扫描以下二维码获取本书视频及附赠资源。
参考文献
...
程序与数据
...
配套PPT
...
配套视频

作者
2024年10月

第一部分
Python数据可视化基础篇
本篇将循序渐进地介绍Python语言的基本使用方式,带领读者走进Python数据可视化分析的世界。本篇除了介绍Python基础语法的使用外,还会介绍Python的3个基础包(库) Numpy、Pandas及Matplotlib的使用。通过本篇的学习,读者会对Python及其数据可视化功能有一定的认识,并可以获得基本的数据可视化分析能力。
第1章.Python快速入门
Python是一种简单易学且功能强大的编程语言,具有高效的数据结构,能简单而有效地实现面向对象编程。Python有简洁的语法和对动态输入的支持,再加上具有解释性语言的特点,因而在大多数平台上和许多领域都是一种理想的脚本语言,特别适用于快速的应用程序开发。
本章主要介绍Python入门知识和数据可视化分析,此外还会介绍Python的安装和基础语法的使用。
1.1 安装Python
为了更好地使用Python,不仅需要安装Python本身,还需要安装功能丰富的Python库。尤其是针对数据可视化分析,通常还会使用到Numpy、Pandas、Matplotlib等第三方库。Anaconda已经为我们准备好了常用库的封装。在数据分析、数据可视化及机器学习时,可以使用Anaconda提供的库的封装。Python对于新手来说,界面更加友好,环境的配置更加方便。
1.1.1 安装Anaconda
本节会介绍Python的安装与使用(本书以Anaconda为例),安装Anaconda后无须再额外安装Python。
可从Anaconda官方网站选择适合自己计算机设备的Anaconda版本进行下载安装。截至本书撰写时,Anaconda已经更新到Python3.9版本。如图1-1所示,在Anaconda的下载页面中,即可跟随指导安装Anaconda。Anaconda安装后的开始界面如图1-2所示。该界面的内容会因为计算机所安装Anconda应用的版本而有一些小的差异,但主要应用是相同的,其中经常被用来编写Python程序的应用有Spyder、Jupyter Notebook和JupyterLab。
图1-1 Anaconda的下载页面
图1-2 Anaconda安装后的开始界面
1.Spyder
Spyder是在Anaconda中附带的免费集成开发环境(Integrated Development Environment,IDE)。它包括编辑、交互式测试、调试等功能。Spyder的操作界面类似于Matlab。Spyder的应用界面如图1-3所示。
在图1-3中,最上方是工具栏区域,左侧是代码编辑区域,可以编辑多个Python脚本;右上方是变量显示、图像显示等区域;右下方是程序运行和相关结果显示的区域。在代码编辑区域选中要运行的代码,再在工具栏区域单击Run按钮或按F9键即可运行代码。不同版本的Anaconda的快捷键略有不同。
图1-3 Spyder的应用界面
2.Jupyter Notebook
Jupyter Notebook不同于Spyder。Jupyter Notebook是一个交互式笔记本,支持运行40多种编程语言,并可以使用浏览器打开其中的程序。它的出现是为了方便科研人员随时将把自己的代码和文本生成pdf或者网页格式与其他人交流。启动Jupyter Notebook后,在合适的位置选择新建Python3文件,可获得一个新的Notebook文件,每个Notebook文件都由许多单元组成,可以在单元中编写程序。Jupyter Notebook界面如图1-4所示。
图1-4 Jupyter Notebook界面
3.JupyterLab
JupyterLab是Jupyter Notebook的升级版,在文件管理、程序查看、程序对比等方面,都比Jupyter Notebook的功能更加强大。JupyterLab和Jupyter Notebook的程序文件是通用的,可以不进行任何修改就可以运行。打开JupyterLab后,JupyterLab的使用界面如图1-5所示。
图1-5 JupyterLab的使用界面
1.1.2 安装Python库
虽然在Anaconda中已经提前安装好了常用的Python库,但是在使用Python进行数据分析与可视化时,会遇到重新安装所需要库的情况。下面介绍一些常用的安装Python库的方式。
(1)通过conda命令安装,通常使用如下命令。
conda install 库的名称
(2)通过pip命令安装,通常使用如下命令。
pip install 库的名称
(3)当指定安装库使用的镜像时,可以通过pip使用如下命令。
pip install -i https://pypi.douban.com/simple 库的名称
1.2 Python的基础知识
本节介绍Python的基础知识,包括如何使用Python的列表、元组、字典与集合等数据结构,以及Python的条件判断语句、循环语句、函数等内容。
1.2.1 列表
列表(list)是Python的最基本数据类型之一。列表中的元素按照顺序排列。这个顺序即索引。索引是从0开始的。第一个元素索引是0,第二个元素索引是1,以此类推。可以通过索引获取列表中的元素。
可以通过list函数或者中括号“[ ]”来生成一个列表。例如,下面的程序生成了包含2~6这5个元素的列表A,同时使用len函数计算列表的长度(列表A的长度为5)。
In[1]:# 生成一个列表A
A = [2,3,4,5,6]
A
Out[1]:[2, 3, 4, 5, 6]
In[2]:# 计算列表A的长度
len(A)
Out[2]:5
生成列表A后,下面的程序可以通过索引获取列表A中的元素。其中,从左往右的索引,也就是顺序索引是从0开始的;从右往左的索引也叫逆序索引,是从-1开始的。
In[3]:# 从左往右的索引,从0开始
A[3]
Out[3]:5
In[4]:# 从右往左的索引,从-1开始
A[-2]
Out[4]:5
获取列表中一个范围内的元素,可以通过切片索引来完成。例如,使用切片索引“0:3”,获取索引从0到3的元素,但不包含索引为3的元素,即这个范围是一个左闭右开的。下面的程序可以获取列表中多个元素。
In[5]:# 获取列表A中的一段
print(A[0:3]) # 输出的结果中不包含索引为3的元素
print(A[1:-1]) # 输出的结果中不包含索引为-1的元素
print(A[-4:])
Out[5]: [2, 3, 4]
[3, 4, 5]
[3, 4, 5, 6]
针对一个已经生成的列表,可以通过append函数在其后面添加一个新元素,并且这个新元素的数据形式可以是多种类型,包括数字、字符串、列表等。例如,下面的程序在列表A的末尾添加了新的数字和字符串。
In[6]:# 在列表A的末尾添加新元素
A.append(7) # 添加一个新元素
A.append(”eight”) # 再添加一个新元素
A
Out[6]: [2, 3, 4, 5, 6, 7, ‘eight’]
在列表的指定位置插入一个新元素可以使用insert函数。该函数有两个参数:第一个参数表示插入的位置,第二个参数表示要插入的内容。例如,下面的程序在列表A索引为5的位置上插入一个字符串Name。
In[7]:# 在列表A指定位置添加一个新元素
A.insert(5,”Name”)
A
Out[7]: [2, 3, 4, 5, 6, ‘Name’, 7, ‘eight’]
删除列表中的元素可以通过pop函数实现。该函数可以删除指定索引号的元素,默认删除列表中的最后一个元素。例如,可以使用下面的程序删除列表A中最后一个元素。
In[8]:# 删除列表A末尾的元素
A.pop() # 删除一个元素
A.pop(5) #删除索引为5的元素
A
Out[8]: [2, 3, 4, 5, 6, 7]
针对列表,还可以通过del函数删除列表中指定位置的元素。例如,可以使用下面的程序删除列表A中索引为2的元素。
In[9]:# 通过del函数删除指定的元素
del A[2]
A
Out[9]: [2, 3, 5, 6, 7]
列表中的元素可以使用Python中的任何数据类型。例如,下面的程序生成列表B,其中包含字符串和列表。
In[10]:# 列表中的元素还可以是列表
B = [”A”,”B”,A,[7,8]]
B
Out[10]: [‘A’, ‘B’, [2, 3, 5, 6, 7], [7, 8]]
下面的程序可以通过加号“ ”将多个列表进行元素合并(列表合并),通过星号“*”将列表的元素进行重复(列表重复),生成新的列表。
In[11]:#列表合并
[1,2,3] [4,5,6]
Out[11]: [1, 2, 3, 4, 5, 6]
In[12]:# 列表重复
[1,2,”three”] * 2
Out[12]: [1, 2, ‘three’, 1, 2, ‘three’]
下面的程序可以通过reverse函数获取列表的逆序;可以通过count函数统计列表中某元素出现的次数;可以通过sort函数对列表中的元素进行排序;还可以通过min函数和max函数找出列表中的最小值和最大值。
In[12]:# 输出列表A的内容
A = [15,2,31,10,12,9,2]
# 获取列表的逆序
A.reverse()
A
Out[12] [2, 9, 12, 10, 31, 2, 15]
In[13]:# 计算列表A中元素出现的次数
A.count(2)
Out[13]:2
In[14]:# 对列表A进行排序
A.sort()
A
Out[14]: [2, 2, 9, 10, 12, 15, 31]
In[15]:# 获取列表A中的最大值和最小值
print(”A最小值:”,min(A))
print(”A最大值:”,max(A))
Out[15]:A最小值: 2
A最大值: 31
1.2.2 元组
元组(tuple)和列表非常类似,也是Python中最常用的一种序列。但是,元组一旦被初始化就不能被修改。可以使用小括号或者tuple函数创建元组。在使用小括号创建元组时,只有一个元素的元组在定义时必须在第一个元素后面加一个逗号,例如:
In[16]:# 初始化一个元组
C = (1,2,3,4,5,6)
C
Out[16]: (1, 2, 3, 4, 5, 6)
In[17]:# 定义只有一个元素的元组
C1 = (1,)
C1
Out[17]: (1,)
和列表一样,针对元组中的元素,同样可以使用索引获取元素,通过len函数计算元组的长度,例如:
In[18]:# 通过索引获取元组中的元素
print(C[1])
print(C[-1])
print(C[1:5])
Out[18]:2
6
(2, 3, 4, 5)
In[19]:# 计算元组的长度
len(C)
Out[19]:6
可以使用加号“ ”将多个元组进行组合。例如,拼接元组C和(”A”,”B”,”C”),可获得新元组D。可以使用乘号“*”获取重复的元组。例如,下面的程序将元组(1,2,”A”,”B”)重复两次,可使用(1,2,”A”,”B”) * 2。
In[20]:# 将元组进行组合获得新的元组
D = C (”A”,”B”,”C”)
D
Out[20]: (1, 2, 3, 4, 5, 6, ‘A’, ‘B’, ‘C’)
In[21]:# 获取重复的元组
(1,2,”A”,”B”) * 2
Out[21]: (1, 2, ‘A’, ‘B’, 1, 2, ‘A’, ‘B’)
1.2.3 字典
字典是Python的最重要数据类型之一。其中,字典的每个元素的键值对(key : value)使用冒号“:”分割;键值对之间用逗号“,”分割;整个字典包括在大括号“{ }”中。计算字典中键值对的数量可以使用len函数。例如,可使用下面的程序初始化一个字典D。
In[22]:# 初始化一个字典
D = {”A”:1, ”B”:2,”C”:3,”D”:4,”E”:5}
D
Out[22]:{‘A’: 1, ‘B’: 2, ‘C’: 3, ‘D’: 4, ‘E’: 5}
In[23]:# 计算字典中元素的数量
len(D)
Out[23]:5
可以通过字典的keys函数查看字典的键,通过字典的values函数查看字典的值,并且可以通过字典的键获取对应的值。除此之外,还可以使用字典的get函数获取字典中的内容,如果没有对应的元素则输出None。例如:
In[24]:# 查看字典中的键
D.keys()
Out[24]:dict_keys([‘A’, ‘B’, ‘C’, ‘D’, ‘E’])
In[25]:# 查看字典中的值
D.values()
Out[25]:dict_values([1, 2, 3, 4, 5])
In[26]:# 通过字典中的键获取对应的值
print(‘D[”B”]:’,D[”B”])
print(‘D[”D”]:’,D[”D”])
Out[26]:D[”B”]: 2
D[”D”]: 4
In[27]:# 通过get函数获取字典中的内容,如果没有对应元素则输出None
print(‘D.get(”C”):’,D.get(”C”))
print(‘D.get(”F”):’,D.get(”F”))
Out[27]:D.get(”C”): 3
D.get(”F”): None
字典的pop函数可以利用键名删除键值对。针对字典中的键值对,也可以将相应键赋予新的值。例如:
In[28]:# 删除对应的键值对
D.pop(”A”)
Out[28]:D
{‘B’: 2, ‘C’: 3, ‘D’: 4, ‘E’: 5}
In[29]:# 更新字典中的取值
D[”B”] = 10
D
Out[29]:{‘B’: 10, ‘C’: 3, ‘D’: 4, ‘E’: 5}
In[30]:# 往字典中添加新的内容
D[”F”] = 11
D
Out[30]:{‘B’: 10, ‘C’: 3, ‘D’: 4, ‘E’: 5, ‘F’: 11}
1.2.4 集合
集合(set)是一个无序的无重复元素的序列。可以使用大括号“{ }”或者set函数创建集合。需要注意的是,创建一个空集合必须用set函数而不是大括号“{ }”,因为大括号“{ }”是用来创建一个空字典的。例如:
In[31]:# 创建一个集合
A = {”A”,”B”,”C”,4,5,6}
A
Out[31]:{4, 5, 6, ‘A’, ‘B’, ‘C’}
In[32]:# 判断元素是否在集合内
”A” in A
Out[32]:True
In[33]:# 计算集合元素的数量
len(A)
Out[33]:6
集合之间也可以进行相互的运算。例如,集合的差集可以使用减号“-”或者difference函数;集合的并集可以使用“|”或者union函数;集合的交集可以使用“&”或者intersection函数;集合的并集减去交集可以使用“^”或者symmetric_difference函数。例如:
In[34]:# 集合之间的运算
A = {”A”,”B”,”C”,4,5,6}
B = {”A”,”B”,”D”,”E”,1,2,4,5}
print(”A - B:”,A - B) # 存在集合A中但不存在集合B中的元素
print(”A - B:”,A.difference(B)) # 存在集合A中但不存在集合B中的元素
print(”A | B:”,A | B) # 集合的并集
print(”A | B:”,A.union(B)) # 集合的并集
print(”A & B:”,A & B) # 集合的交集
print(”A & B:”,A.intersection(B)) # 集合的交集
print(”A ^ B:”,A ^ B) # AB集合不同时存在的元素
print(”A ^ B:”,A.symmetric_difference(B)) # AB集合不同时存在的元素
Out[34]:A - B: {6, ‘C’}
A - B: {6, ‘C’}
A | B: {1, 2, 4, 5, 6, ‘C’, ‘B’, ‘A’, ‘D’, ‘E’}
A | B: {1, 2, 4, 5, 6, ‘C’, ‘B’, ‘A’, ‘D’, ‘E’}
A & B: {‘B’, 4, 5, ‘A’}
A & B: {‘B’, 4, 5, ‘A’}
A ^ B: {1, 2, 6, ‘C’, ‘D’, ‘E’}
A ^ B: {1, 2, 6, ‘C’, ‘D’, ‘E’}
1.2.5 字符串
字符串是Python的最常用数据类型。可以使用引号“‘”或“””来创建字符串。字符串的基础使用方式和列表很相似。例如,可以通过索引进行字符串内容的提取,通过len函数计算字符串的长度,通过“ ”拼接字符串,通过“*”进行字符串的重复输出等。
In[35]:# 创建一个字符串A
A = ”Hello World!”
print(A)
print(”字符串的长度:”,len(A))
Out[35]:Hello World!
字符串的长度: 12
In[36]:# 通过索引获取字符串内容
print(”A[2]:”,A[2])
print(”A[1:10]”,A[1:10])
Out[36]:A[2]: l
A[1:10] ello Worl
In[37]:# 字符串的拼接
A A ”Hello World!”
Out[37]:’Hello World!Hello World!Hello World!‘
In[38]:# 字符串的重复输出
”Hello World!” * 4
Out[38]:’Hello World!Hello World!Hello World!Hello World!‘
除了可以对字符串进行上述基本操作之外,还可以通过find函数查找字符串中的子串,通过join函数拼接字符串,通过split函数拆分字符串,通过replace函数替换字符串中的指定内容,通过strip函数删除字符串首尾的空格等。
In[39]:# 查找字符串中的子串,找到了就返回第一个字符的索引
A = ”Python数据分析与可视化实战”
print(”A.find() : ”,A.find(”分析”))
Out[39]:A.find() : 8
In[40]:# 拼接字符串
print(” ”.join(”ABCDE”))
print(” \.join([”A”,”B”,”C”,”D”,”E”]))
Out[40]:A B C D E
A B C D E
In[41]:# 拆分字符串
print(\Python数据分析与可视化实战”.split(”与”))
print(”A B C D E”.split(” ”))
Out[41]: [’Python数据分析‘, ’可视化实战]
[‘A’, ‘B’, ‘C’, ‘D’, ‘E’]
In[42]:# 替换字符串中的指定内容
print(”Python数据分析与可视化实战”.replace(”与”,” ”))
print(”A B C D E”.replace(” ”,”-->”))
Out[42]:Python数据分析 可视化实战
A-->B-->C-->D-->E
In[43]:# 删除字符串首尾的空格
print(” Python数据分析 可视化实战 ”.strip())
Out[43]:Python数据分析 可视化实战
1.3 Python的语法结构
Python的重要且常用的语法结构,主要有条件判断语句、循环语句等。本节将会对相关的常用内容进行简单介绍,帮助读者快速了解Python的语法结构。
1.3.1 条件判断语句
条件判断语句是通过条件语句的执行结果(True或者False)来决定是否执行代码块。常用的条件判断语句是if语句。例如,判断一个数字A是否为偶数,可以使用下面的程序。
In[44]:# if 语句
A = 10
if A % 2 == 0: #判断是否为偶数
print(”A是偶数”)
Out[44]:A是偶数
针对if / else语句,其常用的结构如下:
if 判断条件:
执行代码块1……
else:
执行代码块2……
如果满足判断条件,则执行代码块1,否则执行代码块2。上面的程序判断A是偶数,则输出“A是偶数”。下面的程序判断A不是偶数,则输出“A是奇数”。
In[45]:# if else 语句
A = 9
if A % 2 == 0:
print(”A是偶数”)
else:
print(”A是奇数”)
Out[45]:A是奇数
In[45]程序片段的判断结果是二选一的。有时候,判断结果有多种形式。例如,判断学生成绩可以是及格和不及格,也可以是优、良、中。这种多条件判断可以通过增加多个elif语句实现。例如,下面的程序判断一个数能否同时被2和3整除。
In[46]:# 多条件判断增加elif 语句
A = 1
if A % 2 == 0: #能否被2整除
print(”A能被2整除”)
elif A % 3 == 0 : #能否被3整除
print(”A能被3整除”)
else: #其他情况
print(”A不能被2、3整除”)
Out[46]:A不能被2、3整除
多条件判断语句除了使用if和else外,一般还使用elif。if和elif语句所列条件之外的情况放到else下输出。
1.3.2 循环语句
下面分别介绍利用for循环语句和while循环语句的示例。for循环语句主要是遍历一个序列,即将一个序列(如列表、元组等)中的所有元素逐个地取出,每取出一个元素执行一次for循环体内的代码块。while循环语句则是对给定的条件进行判断,当判断结果为真时则执行while循环体内的代码块,执行完成后再次对给定的条件进行判断,直到判断结果为假才退出循环。
例如,下面的程序使用for循环语句依次从1~100中取出每一个数进行相加,计算1~100的累加和。
In[47]:# 通过for循环语句计算1~100的累加和
A = range(1,101) # 生成1~100的向量
Asum = 0
for i in A:
Asum = i #等价于“Asum = Asum i”
Asum
Out[47]:5050
针对计算1~100的累加和,还可以使用while循环语句来完成。例如,下面的程序从100开始逆向加到1。
In[48]:# 使用while循环语句计算1~100的累加和
A = 100
Asum = 0
while A > 0:
Asum = Asum A
A = A - 1
Asum
Out[48]:5050
在循环语句中,还可以通过break语句提前跳出循环。例如,下面的程序使用了条件判断语句,如果累加和大于2000,则通过break语句跳出当前的while循环语句。
In[49]:# 通过break语句跳出循环
A = 100
Asum = 0
while A > 0:
Asum = Asum A
if Asum > 2000: # 如果累加和大于2000,则执行下面的break语句跳出循环
break
A = A - 1
print(”Asum:”,Asum)
print(”A:”,A)
Out[49]:Asum: 2047
A: 78
在Python中,还可以在列表中使用循环和判断等语句,这样的列表称为列表表达式。例如,下面的程序生成列表A后,通过for循环语句将列表A中元素使用int函数转化为整型,并作为新列表中的元素。
In[50]:# 通过列表表达式生成新列表
A = [15,”2”,31,”10”,12,”9”,2]
A = [int(i) for i in A]
A
Out[50]: [15, 2, 31, 10, 12, 9, 2]
1.3.3 try/except语句
“异常”是一个事件,会在程序执行过程中发生,影响了程序的正常执行。一般情况下,Python在无法正常处理程序时就会发生一个“异常”。捕获“异常”信息可以使用try/except语句。try/except语句用来检测try语句中的错误,从而让except语句捕获“异常”信息并处理。下面的程序则是通过for循环计算一个列表中元素的和,由于列表中有些元素是字符串,无法被直接相加,即直接相加会出错。这里针对这个出错(“异常”)利用try/except语句进行捕获并处理。
In[51]:# 计算列表A中元素的和时,因为数值与字符串不能相加,所以会出错
A = [0,1,2,3,4,5,6,7,”8”,”9”,10]
Asum = 0
for ii in A:
Asum = Asum ii
执行In[51]程序片段会报错,并且会终止程序的执行。
In[52]程序片段捕获并处理“异常”后继续求和。
In[52]:# 计算A中数值的和
A = [0,1,2,3,4,5,6,7,”8”,”9”,10]
Asum = 0
for ii in A:
try:
Asum = Asum ii # 将有可能出现“异常”信息的代码放在try下执行
except: # 如果发生“异常”,捕获“异常”信息的代码并执行其下的代码块
Asum = Asum int(ii) #将列表A中每个元素转化为整型再相加
else: # 如果不发生“异常”,则执行“异常”信息的代码下的代 码块
print(”没有出错!”)
print(Asum)
Out[52]:
没有出错!
没有出错!
没有出错!
没有出错!
没有出错!
没有出错!
没有出错!
没有出错!
没有出错!
55
关于try/except/else语句说明如下。
(1)try:其下的代码块检验是否有“异常”存在。
(2)except:其下的代码块在出现“异常”时执行。
(3)else:其下的代码块是在不出现“异常”时才执行。
1.4 Python函数
在编程过程中经常会使用到函数。函数是已经组织好的、可重复使用的、实现单一功能的代码段。函数能提高应用程序的可读性,增强代码的重复利用率。Python提供了许多内建函数,如print、len等函数。本节将简单介绍如何自定义函数以及lambad函数的使用。
1.4.1 函数
Python可以自己定义新的函数。自定义函数的结构如下。
def functionname( parameters ):
”””
函数_文档字符串,对函数进行功能说明
””function_suite # 函数体,即函数要实现的功能代码
return expression # 函数的输出
其中,functionname表示函数的名称;parameters指定函数需要传入的参数。自定义一个计算累加和的函数,程序如下。
In[52]:# 定义一个计算累加和的函数
def sumx(x):
””该函数对1~x的所有数据求和
x表示终止数字,如果x为5,则表示该函数求1 2 3 4 5的和
””x = range(1,x 1) # 生成1~x的向量
xsum = 0
for i in x:
xsum = xsum i
return xsum
# 调用上面的函数
sumx(200)
Out[52]:20100
上面定义的函数中sumx是函数名,x是使用函数时需要输入的参数,调用函数可使用sumx(x)来完成。
1.4.2 lambda函数
lambda函数也叫匿名函数,即没有具体名称的函数,它可以快速定义单行函数,完成一些简单的计算功能。可以使用下面的程序定义lambda函数。
In[53]:# 一个参数的lambda函数
f = lambda x: x**2 #参数为x,函数的功能为x**2,即计算x的平方
f(5)
Out[53]:25
In[54]:# 多个参数的lambda函数
f = lambda x,y,z: (x y)*z #参数为x、y、z,函数的功能为(x y)*z
f(5,6,7)
Out[54]:77
在lambda函数(表达式)中,冒号前面可以有多个参数,参数之间要用逗号分隔;冒号后面是函数的功能以及返回的计算结果。
1.5 数据可视化分析
数据可视化是关于数据视觉表现形式的科学技术研究,它旨在借助图形化手段,清晰有效地传达与沟通信息,是科学可视化与信息可视化的统一。当前,数据可视化在教学、科学研究等方面极为活跃,已成为人工智能和大数据分析的基础内容之一。俗话说“一图胜千言”,相对于复杂难懂且体量庞大的数据,图表所传达的信息量要大得多,并且更有效。
1.5.1 什么是好的数据可视化
数据可视化与信息可视化、科学可视化以及统计图形密切相关。好的数据可视化图像并不是看上去绚丽多彩而极端复杂的,而是能有效地传达数据信息、思想概念的,其美学形式与功能等需要统筹考虑。
数据可视化的目的是通过对数据进行可视化处理,从而以更简单、精确、有效的方式传递信息。相对于枯燥乏味的数值、复杂的数据结构和类型,人们对图像的形状、位置、大小、色彩等信息能够更好、更快地识别。因此,通过数据可视化得到的图像能够加深对数据的认识、理解与记忆,使信息更容易准确地传播。数据可视化的作用是表达观点,通过设计合适的可视化图像,使得没有背景知识的大众也能读懂图像中隐藏的重要信息。
好的数据可视化案例一般会具有以下特点。
(1)快速传递有用的信息。数据可视化的最主要目的是帮助我们快速从数据中读取想要的信息,因此可视化图像对信息传递的快速、准确非常重要。
(2)充分显示数据的多维性。数据可视化图像应兼顾全局,从多个角度和维度刻画数据,避免陷入数据的局部细节。通过数据对每一维度值的分类、排序、组合等,观察数据的多个属性,从而获取更加全面的信息。
(3)直观地展示信息。我们可以通过好的可视化图像获得复杂的信息,甚至只要简单的图像就能将信息展示,从而使决策者轻松地使用数据。
本书主要讲述的是基于Python的数据可视化分析与实战,并将数据可视化与分析工具相结合,在充分传达有用信息的同时获得较为简单的可视化图像。因此,本书在介绍数据可视化分析和通过Python程序获得可视化图像时,将会尽可能地使用简单的Python程序获取相同的可视化效果。
1.5.2 数据可视化图像的基本类型
数据图像可以分为几大类,如趋势型图像、类别比较型图像、数据关系型图像、数据分布型图像、关联型图像、高维数据型图像、地理空间型图像等。针对这些类型的数据图像,常用的数据可视化图像如图1-6所示。
图1-6 常用的数据可视化图像
1.5.3 数据可视化分析基本流程
在利用Python进行数据可视化分析时,可以参考图1-7所示的数据可视化分析基本流程示意图。在图1-7中,将数据可视化分析分为了5个步骤,分别是确定数据可视化主题、收集数据可视化需要的数据,对数据进行预处理和特征变换,确定展示数据的数据可视化图像及利用Python中合适的库进行数据可视化。在实际的数据可视化分析时,可以灵活调整相应的步骤。
图1-7 数据可视化分析的基本流程示意图
1.5.4 Python进行数据可视化分析的优势
相比于其他常见的统计分析与绘图软件,Python在数据分析、图形绘制、数据挖掘、机器学习等数据可视化方面具有诸多优势。
(1)Python有大量的数据可视化库。Python在数据分析与数据可视化领域有很多优秀的第三方库可供使用。例如,针对静态图像的数据可视化,可以使用Pandas、Matplotlib、Seaborn、plotnine等库,快速方便地得到自己需要的数据可视化图像,进行信息的快速传递;针对可交互图像的数据可视化,可以使用Plotly、Bokeh、Pyecharts等库;针对网络图像的数据可视化可以使用Networkx、igraph库等。同时,Python还拥有针对其他类型图像的数据可视化库,如针对地图的数据可视化库、针对三维图像进行渲染的数据可视化库等。
(2)Python除了具有强大的数据可视化功能外,还具有数据预处理、数据分析、数据挖掘及机器学习的能力,从而可以在大数据分析的过程中,将这些功能和数据可视化相结合,帮助使用者快速分析数据、解读结果及验证模型效果等,从而提升数据分析和信息获取的效率。
(3)Python是开源的编程语言,其使用是完全免费的;拥有数量庞大的志愿者,对使用者提出的各种问题进行答疑解惑;具有大量功能丰富的库可以使用;简明易懂,利于初学者学习掌握;可以直接通过Python来绘制论文所需要的图像。
1.6 本章小结
本章主要介绍了Python的入门内容,并且对数据可视化分析进行了简单的介绍。主要介绍了相关环境的安装和使用,以及Python的列表、元组和字典等基础的数据结构,同时还介绍了Python中的条件判断、循环与函数等基础的语法结构。针对数据可视化分析,不同类型的可视化图像均有其所使用的数据场景。针对这些图像的数据可视化方式及使用,会在后面更详细的数据可视化实战案例中进行讲解。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2025 (香港)大書城有限公司 All Rights Reserved.