交互的Python:数据分析入门

978-7-115-53570-2
作者: 王诗翔
译者:
编辑: 张爽
分类: Python

图书目录:

详情

Python具有强大的应用能力,以及便捷高效的数据分析和可视化扩展包系统。本书重点讲解Python数据分析的基础知识,使读者通过Python理解数据分析的逻辑,并掌握基本的Python编程知识和分析实现方法。本书系统全面、循序渐进地介绍了Python编程基础、数据导入、数据分析和可视化内容,包括条件判断与循环控制、从Excel中导入数据、使用Pandas库进行数据的转换和计算,以及使用Plotnine库绘制ggplot风格的图形等。此外,本书还涉及Markdown、基本的统计理论和IPython魔术命令等内容。

图书摘要

版权信息

书名:交互的Python:数据分析入门

ISBN:978-7-115-53570-2

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

著    王诗翔

责任编辑 张 爽

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315


Python具有强大的应用能力,以及便捷高效的数据分析和可视化扩展包系统。本书重点讲解Python数据分析的基础知识,使读者通过Python理解数据分析的逻辑,并掌握基本的Python编程知识和分析实现方法。本书系统全面、循序渐进地介绍了Python编程基础、数据导入、数据分析和可视化内容,包括条件判断与循环控制、从Excel中导入数据、使用Pandas库进行数据的转换和计算,以及使用Plotnine库绘制ggplot风格的图形等。此外,本书还涉及Markdown、基本的统计理论和IPython魔术命令等内容。

本书可以作为Python编程和数据分析入门级读者的学习用书,也适合数据分析相关从业人员阅读,还可以作为高等院校计算机、统计及相关专业的师生用书和培训学校的教材。


如今,来自手机、互联网、物联网、科学实验、新闻等各处的信息每天创造着数以万亿字节的数据。在这万物互联的时代,信息技术将人类对数据的创造力一波又一波地推向新的巅峰。我们对计算机、手机中各种App的每一次点击与字符输入,对歌曲、文章的每一次点赞、喜欢、评论等操作都将零散单薄的数据汇入了信息的海洋,被大数据、人工智能等技术激荡出新的浪花。而在这片汪洋大海下,数据科学成为沉淀下来的理论与科学基础。

作为当前最流行的编程语言之一,Python在过去几十年已被广泛应用于系统管理任务的处理和网络编程等领域,接触过Web编程的读者想必很熟悉基于Python语言的Django框架。得益于机器学习、深度学习的兴起,近些年Python在科学计算领域绽放出新的光芒。在IEEE发布的编程语言排行榜中,Python在2017年~2019年连续3年稳居榜首。不同于MATLAB等商业软件,Python是完全免费和开源的;不同于R等主要用于统计分析与建模的开源软件比较难以将成果扩展为完整的应用程序,Python有着非常丰富的扩展库(模块),可以轻松完成各种高级任务,将项目的所有需求一起实现。

然而,国内少有聚焦于数据分析领域的Python图书,来自国外的译作大多起点较高,并不十分适合零基础的读者学习和使用。因此,我写作了本书—— 《交互的Python:数据分析入门》。“交互”一词可能更容易让人们联想到“人机交互”,百度百科中的解释为“一门研究系统与用户之间交互关系的学问”。与普通的Python编程或其他编程(“编辑—编译—运行”的工作模式)有所不同,利用Python处理数据时,用户能够感受到一种极强的交互性。在数据分析时,我们常常缺乏明确的目的和解决方案,因而不断地尝试各种分析—— 键入代码、查看结果、修正、重新运行查看结果,这一不断循环的过程往往是基于探索的,我们可以将其简化为“运行—探索”的工作模式。除此之外,动态文档是数据分析的一个新的流行趋势,普通的编程是进行应用程序的开发,数据分析则是进行数据的探索以及生成相关报表供用户阅读和研究。所以在本书的结构安排上,我添加了关于Markdown标记语言的内容。数据分析过程,就应当像写文章一样。

本书是Python数据分析的入门教程,主要为新手设计,也同样适用于想要了解或者打算进入数据分析领域的程序员。注意,本书绝不是一本技术手册,其中没有讲解关于Python在所有领域的知识,比如网络编程、游戏编程、界面设计等;也不会事无巨细地讲解Python的所有基础知识,而是侧重于解读数据分析和科学计算知识。

1.实例丰富,简单易懂。从简单的数据出发,让读者聚焦于思考、理解和掌握分析逻辑,简单易学,事半功倍。

2.循序渐进,深入浅出。本书的章节安排由易到难,由浅及深,主要采用IPython Shell展示代码,代码简洁优美,输入输出清晰易懂。

3.内容充实,全面覆盖。本书涵盖Python基础知识、数据导入、数据分析和可视化等方面的基础知识。

4.随学随用,举一反三。从简单的需求出发,阐述逻辑,实例方案可以作为模板初步应用到实际工作场景。本书将Markdown作为编程基础的一部分加以介绍,以使读者学会记录和分享知识。

本书共分为15章。

写书是一项繁琐的工作,尽管我已力求本书内容简明、生动、准确,但限于个人水平,书中难免有错漏之处,恳请各位读者批评指正。读者若有任何关于本书的反馈意见,请通过异步社区的本书页面提交,这将有利于我改进本书,使更多读者受益。

本书的内容基于Python和诸多第三方库,在此感谢Python积极活跃的数据科学生态系统,以及NumPy、Pandas、Matplotlib、Plotnine和Seaborn等第三方库的作者们。

感谢出版社的张爽编辑,她对于本书内容的把握和细节的重视极大地提高了本书的质量。

感谢简书的毛晓秋女士和其他工作人员,如果不是他们的努力和鼓励,本书可能很难与众位读者见面。

最后,感谢我的女朋友,如果不是她时刻的敦促,我也许无法投入持续的热情和精力创作一本书;感谢我的家人,他们在远方的陪伴,是我能够写作的最坚实的动力。

王诗翔  

2020年1月于上海


本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。

本书提供如下资源:

要获得以上配套资源,请在异步社区本书页面中单击,跳转到下载界面,按提示进行操作即可。注意:为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。

如果您是教师,希望获得教学配套资源,请在社区本书页面中直接联系本书的责任编辑。

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,单击“提交勘误”,输入勘误信息,单击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。

如果您是学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。

“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。

异步社区

微信服务号


本章内容提要:

本书在正式向读者介绍Python的基本语法与操作之前,通过本章简要介绍Python的定义与利用Python进行数据处理的优势,详述学习Python之前相关软件的安装与配置。

在IEEE发布的2017年编程语言排行榜中,Python高居首位。对于这样一门流行的编程语言,很多Python入门图书中都给它进行了定义,但本书作者认为,较为清晰明了的定义来自维基百科。


Python是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。Python可以被视为一种改良(加入一些其他编程语言的优点,如面向对象)的LISP。作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比于C++或Java语言,Python让开发者能够用更少的代码表达想法。无论是小型还是大型程序,Python都试图让程序的结构清晰明了。


这段文字囊括了读者需要了解的关于Python的基本信息。

(1)Python目前被广泛使用。

(2)Python属于高级编程语言,这区别于C语言这种中级语言或是底层的硬件编程、汇编等语言。

(3)Python由吉多·范罗苏姆创造,于1991年发布。

(4)Python支持面向对象编程(Object-Oriented Programming,OOP)。

(5)Python属于解释型语言,解释型语言以文本的方式存储程序代码,不需要在运行前进行编译(为大众所熟知的C语言就不是解释型语言,在运行前必须编译为机器识别的语言)。

(6)强调代码的可读性和简洁的语法是Python的设计哲学,这一点尤其需要注意和理解,因为这是Python在形式上最显著的有别于其他编程语言之处。Python使用空格的缩进来划分不同的代码块,其他一些常见语言一般使用大括号或者关键字。正是这个特点,让Python代码无论大小长短都看起来非常简单清晰,易于使用(读者将会在本书学习的过程中深入理解这一特点)。

了解一门语言的历史和特点有助于加深对其语法的理解,并提高快速应用能力。读者闲暇之余不妨通过搜索引擎查查Python设计的初衷和一些Python开发的著名项目。

在成为数据分析和人工智能等领域的“头号选手”之前,Python早就因其大量的Web框架、丰富的标准库,以及众多的扩展库等特点成为网络建站、系统管理、信息安全等领域的热门方案。例如,有名的豆瓣网站就是基于Python开发的,Linux所有的发行版都默认安装了Python。

近年来,Python的科学计算库(如结构化数据操作库Pandas、机器学习库scikit-learn)不断进行改良,使得利用Python进行数据分析成了优选方案。Python还有一个“胶水语言”的称号,这来源于它能够非常轻松地集成C、C++等底层代码,进行计算优化。与SAS和R等分析建模领域特定编程语言相比,Python可以同时用于项目原型的构建和生产(前者则主要用于项目原型的构建),从而避免了使用多个语言的麻烦。加上Python本身多年来不断提升的强大编程能力,用户只需要使用Python就可以实现以数据为中心的建模、分析与应用。

可以说,Python在数据分析领域的迅猛发展与其本身非常成熟且广泛的应用是分不开的,Python开源、简明易用的特点也让开发者和使用者自觉倾注精力共同维护社区环境,构建了整个Python计算分析领域的良好生态系统。

Python拥有众多的软件包/库,本书难以全部涉及,这里仅介绍几个构成Python科学计算生态系统的核心成员。

Python存在Python 2(现在一般指Python 2.7)和Python 3(现在一般指Python 3.5及以上)两个不同的版本号。Python官方宣布于2020年停止Python 2的更新和维护,全面进入Python 3时代。考虑到学习和应用的普适性,本书的介绍以Python 3版本为基础。

目前流行的Python集成开发环境(IDE)很多,如PyCharm、Sublime Text、Eclipse+PyDev和Anaconda中的Spyder。不同的软件、系统的安装和配置方式各不相同,本书使用Anaconda平台的Jupyter Notebook对Python进行介绍。Anaconda是非常强大的跨系统开源计算平台,支持个人PC使用的Windows、Linux和macOS系统,提供的近1000个开源软件包,基本上可以满足个人或团队进行数据处理的需求。

为了满足不同读者的需求,本书介绍两种Python线上平台,以及本地机器环境下相关软件的安装和配置,读者可任意选择使用。

网络上现在有很多在线的Python解释器,读者可以在计算机有网络服务的情况下通过浏览器运行代码。因为软件包的导入和计算都在服务器端,所以读者不需要较高配置的计算机就能实现Python的学习和数据分析。

本书推荐两个免费的Jupyter Notebook网站,读者可以结合自己计算机的配置和网络情况进行选择。

(1)Jupyter官方提供的Try Jupyter网站(https://jupyter.org/try),如图1-1所示,该网站包含学习在Jupyter中使用Python和文本书写的例子和练习,读者可以在Try Python with Jupyter的主页(在Try Jupyter网站选择使用Python)运行、调试代码,并下载Jupyter笔记本到本地存储。

(2)微软公司提供的Jupyter数据探索学习平台Azure(https://notebooks.azure.com/),如图1-2所示,支持在线运行多种编程语言进行数学科学探索,其中比较常用的是Python和R语言。读者可以通过微软账户创建仓库,新建Jupyter Notebook并书写代码和探索数据,完成后可以保存,也可以与他人分享(使用过GitHub等开源仓库的读者会发现这个平台的操作和它们极为相似)。

图1-1 Jupyter官方提供的Python在线Notebook页面

图1-2 微软Jupyter数据科学学习平台

推荐读者使用Azure平台,因为其在创建、使用、保存与分享方面更具优势,不过读者首先需要创建一个微软账号。

随着时间的推移,我们相信会有越来越多的线上Jupyter Notebook平台,感兴趣的读者不妨搜索、汇总,选择最适合自己学习和使用的平台。

如果想要在本地部署学习环境,那么可以选择安装两款软件。第一款软件是上文已经提到的Anaconda,为必需软件;第二款软件为nteract(https://nteract.io/),见图1-3,为可选软件。与Anaconda默认提供的Jupyter Notebook不同,nteract像我们常用的文字编辑器一样,界面非常简洁,可以非常方便地编辑Jupyter Notebook文件(文件扩展名为.ipynb)。推荐使用nteract,本书后续的代码和文档展示都会使用到它。虽然nteract目前只有alpha版本(测试版),功能还在不断完善中,但是这不会影响我们使用它学习Python。其实,由于Jupyter Notebook与nteract运行Python都基于IPython内核ipykernel,除了界面、显示效果和一些细微之处,两者在使用上并没有太多的不同,因此不用纠结于是选择使用默认Jupyter Notebook还是nteract进行Python学习的问题。

图1-3 nteract官网页面

1.Anaconda的下载与安装

到Anaconda官网中下载对应操作系统的Python 3版本Anaconda。

在搜索引擎中输入关键字“Anaconda”,也可以轻松地找到Anaconda官网地址,如图1-4所示。

图1-4 查找Anaconda

Anaconda下载页面会根据你使用的操作系统(Windows、Linux、macOS)自动推荐相应的安装包,如图1-5所示。根据自己的操作系统位数(目前市面上的计算机以64位为主),单击左侧Download下方的下载链接进行下载。

图1-5 Anaconda官网页面

如果读者在阅读本书时,Anaconda的Python版本与图1-5所示的Python 3.7有所不同,可以选择更新的版本或者在网络上寻找Python 3.7版本的Anaconda进行下载。由于Python的向下兼容性,即使使用更新的版本,本书所有示例代码不出意外也都能成功运行。

2.Anaconda在Windows与macOS系统上的安装

Windows与macOS系统中的Anaconda安装都是图形化的,与普通办公软件的安装类似,非常简单。

下面以Windows系统下的安装为例进行详细说明。

首先双击下载的Anaconda安装器,单击“Next”,如图1-6所示。

图1-6 单击“Next”

程序会弹出许可协议界面,单击“I Agree”,如图1-7所示。

图1-7 单击“I Agree”

接下来选择安装类型:是为计算机的每一位用户(第二项)还是仅仅当前用户(第一项)安装Anaconda。如果不确定,则选择默认选项,单击“Next”即可,如图1-8所示。

图1-8 选择合适的安装类型

接下来需要为Anaconda选择合适的安装位置。推荐将Anaconda安装在用户目录的Anaconda3目录(如果不存在,可以新建)下,如图1-9所示。如果选择其他目录,请尽量避免安装路径含中文名称。

图1-9 选择合适的安装位置

下一步是设定高级安装选项:环境变量。虽然Anaconda默认不推荐将Anaconda添加到环境变量,但这里推荐勾选该选项,如图1-10所示。勾选该选项的好处是我们可以通过终端(Windows中的cmd)访问所有的Anaconda组件,包括Python、Spyder、Jupyter Notebook等。

图1-10 选择合适的安装位置

单击“Install”进行安装,如图1-11所示。由于安装的内容很多,所以整个安装过程耗时较长,一般需要半小时左右,请耐心等待。

图1-11 安装进度

安装进度条完成后,单击“Next”,如图1-12所示。

图1-12 安装进度条完成

Anaconda推荐安装VS Code代码编辑器,该软件可装可不装,请自行选择。如果不安装,单击“Skip”跳过即可,如图1-13所示。

图1-13 跳过安装Visual Studio Code

最后,单击“Finish”完成安装过程。

3.Anaconda的Linux版本的安装

在Linux系统上安装Anaconda是使用命令行方式进行的(也适用于macOS系统),下载完Anaconda的Linux版本后,打开文件所在目录,并在该目录下打开终端(也可以从其他目录使用cd命令切换)。

然后,输入命令:

# 除了使用浏览器,也可以通过终端运行以下命令下载Anaconda
# wget -c https://repo.anaconda.com/archive/Anaconda3-2018.12-Linux-x86_64.sh

# 添加执行权限
chmod u+x Anaconda3-2018.12-Linux-x86_64.sh
# 执行安装
./Anaconda3-2018.12-Linux-x86_64.sh

# 也可以直接使用Bash进行安装
bash Anaconda3-2018.12-Linux-x86_64.sh

接着按照提示按回车键或单击“Yes”。注意:最后安装程序提示是否将Anaconda添加到环境变量时,一定要键入“Yes”同意。

最后,测试Anaconda是否已经安装成功。新建一个终端,键入下面命令后将会打开Jupyter Notebook(在Windows操作系统中,使用<Windows+R>组合键,然后输入“cmd”)。

jupyter notebook

默认情况下,浏览器会自动打开,跳转到主页面,如图1-14所示。

图1-14 本地浏览器Jupyter Notebook主页

如果读者想进一步了解Anaconda及其安装、Jupyter Notebook的相关知识,不妨多查阅网络上的资料,目前网上相关的介绍和问题解答非常丰富。

4.nteract下载与安装

到nteract官网下载不同操作系统对应的软件版本,在Windows、macOS与Linux系统中都可以直接安装。

安装后直接单击软件图标打开,软件主界面如图1-15所示。

图1-15 nteract界面

单击菜单栏中的“Runtime”,如果出现“Python”字样,那么说明nteract可以正常使用,同时左下方也会出现“python3”标记。如果没有出现上述内容,那么需要检查是否已经成功安装Anaconda,并将其添加到环境变量。

到此为止,我们已经成功搭建了Python的学习环境,迈出了学习Python数据分析的第一步。从下一章开始,我们将正式进入Python基本语法与操作的学习。

本章简要介绍了Python的定义、使用Python进行数据分析的优势、进行科学计算的几个重要库(软件包),以及线上Python平台、本地Python学习环境的安装。推荐读者使用Anaconda(必备)与nteract(可选)作为Python学习平台。

Anaconda已经在数据分析领域中广为流行,其中Jupyter是核心工具。Jupyter Notebook和nteract都基于Jupyter底层核心的图形界面,读者可以根据自己的实际情况灵活选择和使用。除此之外,Python流行的集成开发环境(Integrated Development Environment,IDE)或代码编辑器很多,各有特色,倾向使用其他IDE或编辑器的读者不妨参考网络资料配置Python环境。

Anaconda平台除了Jupyter外,还包含一些其他的重要软件和插件(如Spyder、Jupyter Lab)。因为它们不是本书的核心内容,所以没有在本章一一罗列,感兴趣的读者可以自行了解和学习。


相关图书

深度学习的数学——使用Python语言
深度学习的数学——使用Python语言
动手学自然语言处理
动手学自然语言处理
Web应用安全
Web应用安全
Python高性能编程(第2版)
Python高性能编程(第2版)
图像处理与计算机视觉实践——基于OpenCV和Python
图像处理与计算机视觉实践——基于OpenCV和Python
Python数据科学实战
Python数据科学实战

相关文章

相关课程