数据科学实战手册 R+Python(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-25 04:29:07

点击下载

作者:[美]Tony Ojeda(托尼·奥杰德),Sean Patrick Murphy(肖恩·派特里克·墨菲),Benjamin Bengfort(本杰明·班福特)

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

数据科学实战手册 R+Python

数据科学实战手册 R+Python试读:

前言

我们生活在数据时代。每一年,数据都在大量快速地增长,因此分析数据和从数据中创造价值的需求也比以往任何时候都更为重要。那些知道如何使用数据以及如何用好数据的公司,在后续的竞争中会比那些无法使用数据的公司更有优势。基于此,对于那些具备分析能力,能够从数据中提取有价值的洞见,并且将这些洞见用于实践产生商业价值的人才的需求会放大。

本书提供了多种令读者能够学习如何从数据创造价值的机会。书中所用的数据来自很多不同的项目,而这些项目可以体现出最新的数据科学项目的各种维度。每一章的内容都是独立的,包含了电脑屏幕截图、代码片段、必要的详细解释。我们对处理数据的过程和实际应用特别关注。这些内容都是以循序渐进的方式来安排写作的。

写作本书的目的在于,向读者介绍成为数据科学家的路径,以及向读者展示这些方法是如何应用在多种不同的数据科学项目上的。此外,我们还希望读者在今后自己做项目时,能够很方便地应用我们讲到的方法。在本书中,读者将会学到不同的分析和编程课,而所有的课程中所讲授的概念和技能,都是以实际的项目作为引导,因此读者会更好地理解它们。

本书内容

第1章,准备你的数据科学环境。本章向读者介绍了数据科学的路径,并且帮助Mac、Windows和Linux操作系统的读者恰当地搭建数据科学环境。

第2章,汽车数据的可视化分析(R)。本章将带领读者对汽车数据进行分析和可视化,从中发现不同时间燃料效率的变化趋势和模式。

第3章,模拟美式橄榄球比赛数据(R)。这一章的项目非常有趣且具有娱乐性。本章分析橄榄球球队进攻防守强度的关系,并且模拟比赛,预测哪个球队会取得胜利。

第4章,建模分析股票市场数据(R)。这一章向读者展示如何搭建自己的选股系统,并且使用移动平均法分析股票历史数据。

第5章,就业数据的可视化探索(R)。这一章向读者展示如何从劳动统计局获取雇佣和收入数据,并且用R对不同水平的数据进行空间分析。

第6章,运用税务数据进行应用导向的数据分析(Python)。本章向读者展示如何使用Python将自己的分析从一次性临时的工作转变为可复用的产品化的代码。这些工作都是基于一份收入数据展开。

第7章,运用汽车数据进行可视化分析(Python)是第2章内容的复用,但是这里使用的是强大的编程语言Python。

第8章,社交网络分析(Python),向读者展示如何建立、可视化和分析社交网络。本章所用数据来自于漫画书中的角色关系。

第9章,大规模电影推荐(Python)。本章介绍如何用Python搭建电影推荐系统。

第10章,获取和定位Twitter数据(Python)。这一章向读者展示如何调用Twitter的API获取Twitter用户数据,并绘制用户信息中包含的地理信息数据。

第11章,利用NumPy和SciPy优化数值计算(Python)。本章将带领读者领略如何优化Python代码,从而在处理大数据集时节省时间和金钱。

阅读本书,你需要什么

要阅读本书,你需要一个能够连接到互联网的电脑,并且能够安装本书项目中所需要的开源软件。本书主要用到的软件包括R和Python,这两个编程语言带有大量的免费的包和库。第1章会介绍如何安装这些软件以及它们的包和库。

本书面向读者

本书旨在使用能够亲自实践的现实案例,启发那些想要学习数据科学以及数值编程的数据科学家们。无论你是一个全新的数据科学家,还是具有丰富的经验,在学习了数据科学项目的结构、数据科学管道的路径以及本书中展示的示例代码之后都会有所收获。本书是按照循序渐进的方式组织内容的,因此并不需要读者具有太多的编程经验。

读者反馈

我们欢迎读者反馈。请让我们知道你对本书的想法 —— 哪些部分你喜欢,哪些部分你不喜欢。对于我们后续开发更多的话题来说,读者反馈是非常重要的。

只需要发送电子邮件到feedback@packtpub.com,并且在邮件标题中提及本书的书名,在邮件中告诉我们你的想法即可。

如果你对某个领域特别专长,并且你也想写本书或者和别人合作写本书,那么请访问我们的作者指南:www.packtpub.com/authors。

用户支持

作为我们Packt图书的荣誉用户,你可以享受以下权益。下载示例代码

你可以通过你在http://packtpub.com的账户,下载所有Packt图书的代码。如果你是在其他地方购买的本书,你可以在 http://www.packtput.com/support上注册,并且通过电子邮件获得代码文件。下载彩色图片

我们也提供书中彩图的PDF文件。这些彩图将会帮助你更好地理解本书的内容。你可以在这里下载这些文件:http://www.packtpub.com/sites/default/files/downloads/0246OS_ColorImages.pdf.勘误

尽管我们已经尽量细致地检查本书的内容,以免发生不确切的部分,但是书中的错误依然是难免的。如果你发现我们书中的内容有错,无论是内容的错误,还是代码的错误,请你将错误反馈给我们,我们将非常感激。当你发现任何错误,请通过如下网址来反馈:http://www.packtpub.com/submit-errata。一旦你的勘误信息被确认,那么你提交的信息将被我们接受,并且上传到我们的网站,添加进勘误列表。你可以在 http://www.packtpub.com/support上查看所有的勘误信息。版权问题

互联网的版权问题一直是个问题。在Packt,我们非常严肃地保护我们的版权。如果你在互联网上遇到我们出版图书的任何盗版版本,无论是什么形式,请将该盗版版本的地址和网站名称反馈给我们。

请将盗版链接发送到copyright@packtpub.com。

我们将非常感谢你对我们的帮助,你的行为能保护我们的作者,从而让他们能够更好地为你提供更多优质的内容。问答

如果你对我们的图书有任何问题,请通过如下电子邮件联系我们:questions@packtpub.com。我们将尽我们所能帮你解答。第1章 准备你的数据科学环境

本章涵盖如下内容:

理解数据科学管道

在Windows、Mac OS X和Linux上安装R

在R和RStudio中安装扩展包

在Linux和Mac OS X上安装Python

在Windows上安装Python

在Mac OS X和Linux上安装Python数据分析库

安装更多Python包

安装和使用virtualenv简介

传统意义上的食谱,就是作者擅长的烹饪菜谱,用于帮助读者学习新菜的做法。很多人相信,对于一份食谱而言,它最终的产出就是食谱所对应的菜品本身,而读者在阅读本书时也可以想象是在阅读一份食谱。本书的每一章都会介绍基于不同目标、在不同数据集上使用数据科学管道的各种阶段来完成的实际应用案例,指导读者实践。同时,和做菜的过程一样,最终的产品可以是针对某一个特定数据集的分析应用。

然而,我们希望读者能有一个更广泛的视角。数据科学家是在实践中不断学习的,每一次的迭代和验证假设都可以增进实践者的知识。在本书中,我们使用两种不同的编程语言(R和Python)来对不同的数据集采用多种数据科学管道。希望通过这样的方式,读者可以开始抽象出分析模式,看到一幅更广阔的图景,并且对数据科学这一尚未明确定义的领域有更深刻的认识。

我们同时也希望读者能够知道,不同于传统的烹饪食谱,数据科学的食谱是含混不清的。当主厨开始制作某道菜时,他们是明确知道要使用什么食材,以及成品的品相如何的。然而对于数据科学家而言,情况往往不同。数据科学家往往不知道要处理的数据集是什么样的。数据科学家的菜单是深入挖掘数据的某种可能实现方式,而要开始在这条路上深挖数据,首先你要能够问出对的问题。

如果你是统计学或者数学背景,那么本书提供的建模技术可能不会令你感到兴奋。你应该关注那些更偏重实践的数据科学管道,比如如何加载一个很大的数据集,以及如何使用可扩展工具以及已知算法来实现实际的数据应用、交互式可视化图形展示以及Web应用,而不仅仅是报告或者论文。我们希望这些视角可以扩展你的价值,加深对于数据科学的理解,以及能够更好地在你的领域应用数据科学。

实际的数据科学家会使用丰富多样的工具来完成他们的工作。数据源的搜罗、数据清洗、可视化、建模以及使用各种工具完成大量的任务。如果你问过绝大多数数据工作者,你会知道,这些工具中最重要的部分是对数据进行分析和建模的编程语言。回答哪种编程语言最适合做特定的数据分析和建模,有点像回答世界上哪个宗教是最正确的,当然这不会造成大规模流血事件。

本书中,我们会同时关注两种非常不同的编程语言——R和Python——读者可以选择自己喜欢的。在整个过程中,我们会针对特定任务所适合的编程语言给出一些提示。同时,我们也会对不同编程语言,在同样数据集上使用类似分析方法得出的结果加以比较。

当你学习新的概念和技术时,总要在学习的深度和广度之间做权衡。同样的时间和精力,你到底是应该同时学习 R和Python,达到一个中等水平,还是选择其一深入研究?从我们的经验来看,我们强烈推荐你精通掌握一门语言,同时对另一门语言也有一些认知。那么,这是否意味着本书中一些章节你可以跳过呢?显然不是!然而,当你开始阅读本书时,请选择一门语言,并且深入研究,不仅掌握这门语言,并且能流利地使用它。

为了继续本章的内容,请保证你的电脑有足够的空间,可以在合理的时间内下载几个GB的软件。理解数据科学管道

在开始安装各种软件之前,我们需要对本书中使用的那些在数据分析中可重复的步骤和方法有所了解。处理流程

以下五步是数据分析的关键。

1.获取:数据科学管道的第一步是从不同来源获取数据,包含传统数据库、NoSQL、文件、网页抓取、分布式文件存储系统(如Hadoop平台上的HDFS、RESTful API、文本文件),甚至还包括PDF(当然但愿不要是这种形式)。

2.探索和理解:第二步是要理解你要分析的数据,以及要理解数据是如何采集的;这一步经常需要做一些显著性的探索。

3.改写、整合以及处理:这一步往往是数据科学管道中最费时的。数据几乎从来不会是你想要的格式。

4.分析和建模:这一步是比较有意思的,数据科学家会从数据中得到变量之间的统计关系,并且施展他们的机器学习技能来聚类、分类、预测等。

5.交流和实施:在管道的最后一步,我们需要交付我们的结果,而结果需要一定的形式和结构。这些结果有时是交付给自己的,从而开启下一轮的迭代,有时是发送给各种不同的用户的。数据产品可以是一次性的报告,也可以是可扩展的Web 产品,而这些 Web产品有可能会被成千上万的人使用。工作原理

尽管上文提到的五个步骤是有顺序的,但是不要认为每一个项目都会严格地按照上面的顺序线性进行。事实上,敏捷型数据科学家会知道这些过程都是交织在一起的。通常数据探索会让我们知道数据是如何清洗的,清洗之后的数据可以继续做更多的探索和更深入的理解。这两步哪一步优先,是基于你一开始对数据熟悉的程度。如果你使用生产和采集数据的系统工作过,那么数据探索和理解这个阶段也许会非常短,除非系统发生了什么问题。相反,如果你对要处理的数据没有任何背景知识,那么数据探索和理解这个阶段会花费一些时间(其中的很多时间是不用编程的,例如和系统开发者进行沟通)。

下图展示了数据科学管道。

也许你已经得知,数据的改写、整合和处理常常会耗费总项目80%的时间和资源。在一个完美世界中,通常我们可能收到完美的数据,然而,不幸的是,这种情况从来没有发生过。而且数据中存在的问题是不可穷举的。有时,一个数据字典可能会发生改变,也有可能会丢失。在这种情况下,想要理解数据取值的含义,是不可能的。一些数据域中可能存在垃圾,或者一些值已经转到另外的域中。如一个Web产品改版升级,也许会产生一些bug,导致之前的数据无法正常采集,从而导致几百上千行的数据缺失。如果这一步发生问题,那么你分析的数据就会包含这些错误的信息。

最后一步,交流和实施,是非常重要的。但是这一步错综复杂,往往不受重视。请注意,数据科学管道的最后一步,并不是数据可视化,不是做一些炫酷的图形,或者做一些本身就看起来非常复杂的图形展现。相反,数据可视化会和数据一起,成为数据科学家要讲的故事大图中的一部分。更进一步,有一些数据科学家会更加深度地推动他分析结果的落地,因为如果你不去试着用你从数据中发现的知识去说服决策者做出某种决策,那么你的数据科学工作将毫无价值。在Windows、Mac OS X、Linux上安装R

R项目的主页上对R的定义是“R是一个用于统计计算和绘图的编程语言和环境”。并且R已经变成了统计分析和数据分析的首选语言。对于本书而言,前半部分都会选择R作为默认的工具。准备工作

请确保你的电脑已经连接了网络,因为你可能要下载一个大于200MB的软件。处理流程

安装R是很简单的;请执行如下步骤。

1.请访问CRAN(Comprehensive R Archive Network),并且下载你的操作系统所对应的最新版本的R。

对于Windows操作系统,访问http://cran.r-project.org/bin/windows/base/。

对于Linux操作系统,访问http://cran.us.r-project.org/bin/linux/。

对于Mac OS X系统,访问http://cran.us.r-project.org/bin/macox。

截至本书写作的2014年2月,最新版本的R是3.0.2版本。该版本是2013年9月发布的。

2.当你下载好之后,请按照CRAN提供的非常好的指导文档,在你的平台上安装R。对于Windows和Mac用户,只要双击安装包即可。

3.安装好R之后,打开它。你将看到一个类似下图的窗口。

4.你可以就此停止,但是你会错过一款非常出色的R语言的集成开发环境(IDE)——RStudio。访问http://www.rstudio.com/ide/download/下载RStudio,按照网上提供的安装指南来进行安装。

5.安装好之后,请运行RStudio。下面的截图展示了作者个性化配置的RStudio界面,控制台在左上角,编辑器在右上角,当前空间的变量列表在左下角,当前路径在右下角。工作原理

R是一种交互式编程语言,最初出现在 1993年,是对 S 统计编程语言的集成。而 S语言则是在20世纪70年代诞生于Bell实验室(S-PLUS是S语言的商业版本)。R是专注于统计分析和可视化的领域语言(DSL)。因为拥有开源证书,它有时候又被称为GNU S。当然,你也可以用R做许多并非直接和统计分析相关的工作(如网页爬取)。即便如此,R依然是一个领域语言,并且没有打算成为一门通用语言。

R同时也受到CRAN的支持,CRAN是Comprehensive R Archive Network(http://cran.r-project.org/)的首字母组合。CRAN包含了以往版本的R,并且提供下载。当需要使用旧版的软件做可重复性的分析时,就可以使用旧版本的R。除此之外,CRAN 包含了成百上千个可以免费下载的扩展包。事实上,正是因为近几年,很多新的统计算法都是首先集成在R中,才使得R成为多个领域中数据分析开发平台的首选。

RStudio(http://www.rstudio.com/)可以在GNU Affero通用公共许可证V3版下获取。它是开源的,可以免费使用。RStudio 公司除了提供 R的商业支持之外,也提供了额外的工具和服务。参考资料

参考Getting Started with R文章:http://supoort.rstudio.com/hc/en-us/articles/201141096-Getting-Started-With-R。

访问RStudio的主页:http://rstudio.com/。

参考Stages in the Evolution of S文章:http://cm.bell-labs.com/cm/ms/departments/sia/S/history.html。

参考A Brief History of S PS文档:http://cm.bell-labs.com/stat/doc/94.11.ps。在R和RStudio中安装扩展包

R有一个数量庞大的扩展包,用以增加其功能。事实上,很多国家的大学统计系中,R都是其默认首选语言。因此,当有新的算法被发明时,R 都是第一个用于实现这种算法的语言。更幸运的是,安装新增的R包非常简单,介绍如下。准备工作

只要你的R和RStudio已经安装完毕,那你就已经准备好了。处理流程

在R中安装新增包非常简单:

1.打开R的交互环境,或者RStudio。

2.假如我们要安装ggplot2,只要输入如下命令,按下回车即可:install.packages ("ggplot2")请注意,我们假设,在本书后面的章节,每当我们键入一行文本时,都会在末尾键入回车键。3.此时,你会在电脑屏幕上看到如下文字。trying URL 'http://cran.rstudio.com/bin/macosx/contrib/3.0/ggplot2_0.9.3.1.tgz'Content type 'application/x-gzip' length 2650041 bytes (2.5Mb)opened URL==================================================downloaded 2.5 MbThe downloaded binary packages are in/var/folders/db/z54jmrxn4y9bjtv8zn_1zlb00000gn/T//Rtmpw0N1dA/downloaded_packages

4.也许你已经注意到了,你需要知道包的准确名称,如刚才例子中的ggplot2。访问http://cran.us.r-project.org/web/packages/available_packages_by_name.html,确保你输入的包名是准确的。

5.RStudio 提供了安装包更为简单的机制。如果你还没有打开它,那么现在打开RStudio。

6.在菜单上选择Tools,选择Install Packages,则会弹出一个窗口,如下图所示。

7.当你开始键入包名时,RStudio 则会自动展示一列可能的包名。这种自动补全功能简化了包的安装过程。更好的是,类似包名的包,或者是和你要安装的包名前几个字母相同的老版本或者新版本的包,你都会看得到。

8.现在我们安装一些新的包,这些包都是我们强烈推荐的。输入如下命令。

install.packages("lubridate")

install.packages("plyr")

install.packages("reshape2")

下载样例代码

如果你在www.packtpub.com拥有一个账户,那么对于所有的Packt图书,都可以下载样例代码。如果你在别处获取了这本书,那么你可以访问www.packtpub.com/support注册之后,通过电子邮件获取。工作原理

无论你是使用RStudio的图形界面还是直接使用install.package命令,你做的事情是一样的。你告诉 R,针对你目前的R 版本,找到一个合适的库来安装。当你使用命令语句来安装包时,R会报告一个在CRAN上找到的包的地址,以及这个包在你的电脑上下载的路径。更多内容

R最有力的力量来源是其社区,这里再回顾两个网站。R-bloggers是一个整合了R相关新闻、入门指南的网站,这个网站上目前有超过450篇博客。如果你对R有新的问题,在这里你可以找到很多的信息。此外,Stack Overflow(http://www.stackoverflow.com)是一个很好的问答网站,在这个网站中,使用标签rstat,可以找到很多关于R的问答。

最后,当你的R技能增长之后,你可能希望构建一个R包给别人使用。本书的内容并不包含如何构建R包,但是请记住,R语言的核心正是R社区由用户提交的丰富而广泛的包。参考资料

10个我希望更早知道的R 包:http://blog.yhathq.com/posts/10-R-packages-I-wish-I-knew-about-earlier.html。

R-blogger网站:http://www.r-bloggers.com/。

生成自己R包的帮助文档:http://cran.r-project.org/ doc/contrib/Leisch-Creating-Packages.pdf。

2013年top100的R包:http://www.rbloggers.com/top-100-r-packages-for-2013-jan-may/。

学习R的博客网址:http://learnr.wordpress.com。在Linux和Mac OS X上安装Python

对于我们来说,很幸运的一点是,在大多数Mac OS X版本以及很多Linux的版本(包含最新的Ubuntu和Fedora都安装了Python 2.7或者最新版本)都已经预装了Python。因此,我们在这一步不需要做太多的事,只需要检查是否一切都已经安装好了。

对于本书而言,我们使用Python 2.7.x版本,而不使用Python 3版本。因此,如果你默认安装的是Python 3,那么你要确认你使用的是Python 2.7。准备工作

请确保你的网络连接正常,我们可能需要安装一些工具。处理流程

请执行以下步骤。

1.打开一个新的窗口,输入如下命令:which python。

2.如果你已经安装了Python,那么你可能会看到如下内容:/usr/bin/python。

3.接下来,查看你的Python版本python-version。在我的MacBook Air上,看到如下信息:Python 2.7.5。工作原理

如果你打算使用 OS X,那么你可能会因为以下几个原因,从而希望安装一个独立的Python版本。首先,每次苹果升级你的操作系统时,它会删掉你已经安装的Python包,这样你就必须重新安装你已经安装过的包。其次,Python的新版本发布频率会比苹果自身的更新频率要高。因此,如果你需要紧随着Python的更新而更新,那么最好安装自己独立的版本。最后,苹果的Python 版本和Python 官方的版本有一点不同,其在硬盘上的位置并不似官方Python那样有一个标准。

网上有很多指南可以帮助你在你的Mac 上安装 Python。我们推荐一个很棒的指南:http://docs.python-guide.org/en/latest/starting/install/osx/。更多内容

Python现在有两个版本,这一点有点令人困惑。Python 3.0版本和2.5版本在本质上有差异。然而,因为Python在很多操作系统上被广泛使用,因此Python的基础架构准备逐渐向3.0版本迁移,迁移的过程会保留版本回滚的功能。从 2.6版本开始,Python 2.x越来越像Python 3。最新的版本是Python 3.4,而且很多人期待到3.5版本Python会统一。不用担心Python 2.x和3.x之间的差异会对你的学习带来不便。尽管本书主要使用2.x版本,但是我们保证本书中的Python代码只需要稍作修改,就可以在2.x和3.x版本之间便捷地迁移。参考资料

Python初学者指南:http://www.python.org/about/ gettingstarted/。

Python便捷入门指南:http://docs.python-guide.org/ en/latest/。

Mac OS X Mavericks10.9下的Python开发环境:http://hackercodex.com/guide/python-development-environment-onmac-osx/。在Windows上安装Python

在Windows下安装 Python比较复杂,有三种选择。第一,你可以选择一个标准的Windows版本,然后从python.org(http://www.python.org/download/releases/)下载Python的可执行安装包进行安装。这种方式的潜在问题在于安装路径,有可能配置文件的路径和标准的Python安装路径不一致。很多Python包的安装都会遇到路径问题。此外,很多网上关于Python的教程都不适用于Windows,你需要自己填坑。我们看到很多学生在Windows上安装Python时遇到非常多的问题。除非你是专家,否则我不建议你这样做。

第二个选项是安装一个已经集成好所有科学、数值以及数据相关包的Python预装版本。目前有两个比较合适的预装版本,一家来自Enthought公司,另一家来自Continuum Analytics公司。Enthought提供了配适Windows 32位和64位的Canopy(华盖)版本。这个版本的免费版叫作Canopy Express,其中预装了50多个Python包,包含pandas、Numpy、SciPy、IPython和matplotlib。对于本书的内容来说,这些包已经足够了。Canopy Express还有一个自己的集成开发环境,类似于MATLAB或者RStudio。

Continuum Analytics提供的Anaconda,是一个完全免费的集成Python 2.6、2.7以及3.3版本,包含100多个包,这些包可以做科学计算、数学、工程、数据分析等。Anaconda包含 Numpy、Scipy、pandas、Ipython、matplotlib和更多的包。对于本书而言,这些包绰绰有余。

第三个选项,也是最佳选项,就是在Windows上使用一个Linux的虚拟机。可以使用Oracle提供的免费的VirtualBox(https://www.virtualbox.org/wiki/Downloads)。这样你可以选择你喜欢的Linux版本来运行Python。这种方法的缺点是在虚拟机上的操作可能会有延迟,此外你还需要掌握Linux命令行的操作。当然,这也是一个数据科学家应该掌握的。处理流程

按照如下方法,使用VirtualBox安装Python。

1.从Oracle软件免费下载VirtualBox:https://www.virtualbox.org/wiki/Downloads。

2.参考如下指导,在 Windows 下进行安装:https://www.virtualbox.org/manual/ch01.html#intro-installing。

3.安装好之后,完成指南中1.6开启VirtualBox和1.7 生成你的第一个虚拟机,以及1.8 运行你的虚拟机的部分。

4.当你的虚拟机开始运行,那么就参考在Linux和Mac OS X上安装Python那一章的内容进行Python的安装。

如果你想要安装Continuum Analytics的Anaconda版本,请参考如下步骤。

1.在如下链接下载64位或者32位的版本:http:// continuum.io/downloads。

2.参考这份详尽的指南来进行安装:http://docs.continuum.io/anaconda/install.html。工作原理

对很多读者而言,基于他们不同的经验,他们可以很轻松地选择安装虚拟机或者是安装一个预装的Python版本。然而,如果你对这个选择还有所困惑的话,那么请往下看。如果你之前只使用过Windows操作系统,也不太熟悉命令行操作,那么基于虚拟机的操作对你来说会是一个挑战,这也会极大地丰富你的技能。这需要很多的努力,但是对于成为一名数据科学家而言,是很有用的(请相信我们)。如果你有时间,也有相关的知识,那么最好所有的工作都在虚拟机上执行,这将帮助你更快地成为一名数据科学家,也会帮助你更快地在生产环境部署你的代码。如果你没有时间,或者没有相关知识,那么可以使用备选方案,安装Anaconda版本。很多人也是这样选择的。

在本书后续的内容中,我们往往会首先介绍基于Linux/Mac OS X的Python包的安装方法,其次才会介绍Anaconda的安装。因此,对于Windows用户,我们会假设你要么安装了虚拟机,要么安装了Anaconda版本。如果你选择了其他的环境,那么我们也很赞赏你探索未知的勇气并且祝你好运。Google会常伴你左右。参考资料

Anaconda的网页:https://store.continuum.io/cshop/ anaconda/。

Enthought的Canopy Express的网页:https://www.enthought.com/canopy-express/。

虚拟机:https://www.virtualbox.org/。

Windows下多种包的安装方式:http://www.lfd.uci.edu/~gohlke/pythonlibs。在Mac OS X和Linux上安装Python数据分析库

Python常常被称为“自带电池的”,其自带的包往往不能发挥这个语言在数据分析上的强大功能。在这一节,我们会安装一个被称为SciPy的“兵器库”,包括NumPy、SciPy、pandas、matplotlib和IPython。准备工作

我们假设你已经安装了标准的Python。

如果在前一节,你决定安装Anaconda版本(或者Python的其他自带所需库的版本),那么你可以忽略这部分。

为了检查特定的Python 包是否被恰当地安装,请打开你的Python 解释器,试着载入包。如果成功,则说明包已经成功安装在了你的机器上。为了实现这个操作,你可能需要通过sudo命令来获得机器的根访问权限。处理流程

以下步骤将帮助你在Linux操作系统中安装Python数据分析库。

1.首先你需要知道你使用的Linux版本。Linux的版本常常决定了你使用的包管理系统,可能包括apt-get、yum以及rpm。

2.打开浏览器,输入 http://www.scipy.org/install.html,这里包含适用于多数操作系统的安装方案。

3.打开shell。

4.如果你在使用Ubuntu或者Debian,则输入如下代码。

sudo apt-get install build-essential python-dev python-

setuptools python-numpy python-scipy python-matplotlib ipython

ipython-notebook python-pandas python-sympy python-nose

5.如果你使用的是Fedora,则输入如下代码。

sudo yum install numpy scipy python-matplotlib ipython python-

pandas sympy python-nose

在你的Macintosh上安装Python数据分析库,有多种选择。

第一个选择是对每个工具都下载一个已经预编译过的安装包(.dmg)。然后像安装Mac应用一样,安装它们(我们推荐这种方法)。

第二个选择是,如果你的Mac上有MacPorts(一个安装软件的命令行工具系统),并且也安装了XCode。那么你只需要输入:

sudo port install py27-numpy py27-scipy py27-matplotlib py27-

ipython +notebook py27-pandas py27-sympy py27-nose

第三个选择是,Chris Fonnesbeck提供了一种已经被测试可行的安装方法,本书中所有的包都可以通过他的方式安装。请参考:http://fonnesbeck.github.io/ScipySuperpack。

上述方法都会花费一些时间,因为会有大量的文件被安装。工作原理

历史上,安装SciPy库曾经非常有挑战,因为安装过程非常繁复,甚至还需要Fortran。因此,我们不建议你自己从源代码进行编译,除非你自己乐于折腾这些内容。

现在,我们要问一个更恰当的问题:我们刚刚都安装了些什么?我们安装了NumPy、SciPy、matplotlib、Ipython、IPython Notebook、pandas、SymPy和nose的最新版本。这些包的描述如下。

SciPy:这是一个基于 Python 生态的开源包,用于数学、科学、工程,以及一些很有用的机器学习、科学计算以及建模的库。

NumPy:这是一个非常基础的Python包,提供了数值计算的功能。它提供的计算方式和C很像,所以速度非常快,尤其是当你需要处理高维数组和线性代数计算时。正是因为NumPy,Python才可以进行其他语言无法企及的如此高效的大规模数值计算。

matplotlib:这是一个被很好地创建并且可以扩展的2D绘图库,而且其用法对于MATLAB用户来说是非常熟悉的。

IPython:这个包提供了非常丰富并且强大的Python shell。对于标准Python REPL(Read-Eval-Print-Loop)而言,它是一个很好的代替。

IPython Notebook:这是一个基于浏览器的Python工具,可以支持代码、格式化文件、markdown、图、图像、声音、影像以及数学表达式的编辑和记录。

pandas:这个包提供了一个非常稳健的数据框对象,并且提供很多扩展工具,让统计分析变得更简单和快速。

nose:这个库支持Python标准库的单元测试框架。更多内容

在本章中,我们将更深入地讨论上述包。然而,如果我们不提Python IED,肯定会被人认为是玩忽职守的。简单来说,我们推荐在你最喜欢的写程序的文本编辑器中集成Python的IDE,比如来自 GitHub的开源的Atom、sublime,或者 Ruby 程序员最爱的TextMate。Vim和Emacs也是非常棒的选择,因为它们除了功能强大之外,还可以很容易地在远程服务器上被使用(数据科学家经常使用这种工作方式)。这些编辑器都有很多插件,可以提供代码补全、高亮、缩进等功能。如果你一定要选择一个IDE,那么可以试试PyCharm(社区版本是免费的)。你会发现大多数Python IDE比处理数据更适合网页开发。参考资料

你可以在http://pandas.pydata.org/的Python数据分析库这篇文章中看到pandas的更多信息。

请访问NumPy网站:http://www.numpy.org/

请访问SciPy网站:http://www.scipy.org/

请访问matplotlib网站:http://matplotlib.org/

请访问IPython网站:http://ipython.org/

请参考ScipPy的历史这篇文章:http://wiki.scipy.org/History_of_SciPy

访问MacPorts主页:http://www.macports.org/

访问XCode主页:https://developer.apple.com/xcode/features/

访问XCode下载页:https://developer.apple.com/xcode/downloads/安装更多Python包

本书还需要一些其他的Python 包。正如 R 有一个供社区提交构建包的仓库,Python也有一个类似的功能,以Python包指数(PyPI)的形式呈现。截至2014年8月28日,PyPI中包含48 054个包。准备工作

在这里,你只要连接到互联网即可。除非特别指出,否则这里的步骤都假设你使用的是操作系统默认的Python版本,而且不是Anaconda。处理流程

接下来的步骤将向你展示如何下载Python包,并用命令行进行安装。

1.下载包的源代码,可以将其下载到任何你喜欢的地方。

2.对包进行解压。

3.打开一个控制台。

4.到达源代码的路径。

5.输入如下命令:Python setup.py install

6.如果你需要根访问,输入如下命令:sudo python setup.py install

一种更便捷和简单的方法是使用pip安装。请按照如下步骤执行。

1.首先,检查你的管道是否已经安装好了,打开Python解释器,输入:>>>import pip

2.如果你发现没有错误,说明你的管道已经安装好了,那么你可以直接跳到第5步。如果你看到了报错,那么接下来我们快速地安装一下管道。

3.在你的机器上下载get-pip.py,下载地址:https://raw.github.com/pypa/pip/ master/contrib/get-pip.py。

4.打开Windows命令行,到达下载路径,输入:python get-pip.py或者sudo python get-pip.py

5.如果管道已经安装好了,那么请保证你现在在系统命令行的提示符下。

6.如果你使用系统默认的Python版本,请输入:pip install networkx或者sudo pip install networkx

7.如果你使用的是Anaconda版本,输入如下命令:conda install networkx

8.现在,让我们试着安装其他的包,比如ggplot,输入:pip install ggplot或者sudo pip install ggplot工作原理

安装Python包,你至少有两种不同的方法可选。比较古老的方法是,你下载包的源代码,在你自己的机器上拆包,然后运行带有安装标签的setup.py。如果你想,你也可以在文本编辑器中打开setup.py,看看这里的脚本到底在干什么。基于你当前环境的权限管理,你可能得需要sudo权限。

第二种方法是使用 pip 安装。这种方法会自动抓取远程库中的包,然后在你本机进行安装。如果这种方法可行,那么我们建议使用这种方法。更多内容

管道很有用,所以我们建议读者阅读其在线的指南。特别注意其中非常有用的功能pip freeze > requirements.txt,这个功能可以让你和你的同事交流外部相关的依赖。

最后,conda是管理Anaconda版本Python的管道的替代品。其官方网站的介绍中说道,“它是一个跨平台的Python 包的管理器”。Conda的理念非常高端,超越了Python 本身。如果你在使用Anaconda,我们强烈建议你继续深入研究conda可以做什么,并且学会使用它,用它代替管道来作为你的包的管理器。参考资料

管道用户手册:http://www.pip-installer.org/en/latest/ user_guide.html

conda的主页:http://conda.pydata.org

conda相关的博客:http://www.continuum.io/blog/conda安装和使用virtualenv

virtualenv是一个变化了的Python工具。你一旦开始使用这个工具,你就会义无反顾地爱上它。virtualenv会生成一个本地的环境,它会在这个环境下安装其自带的Python版本。一旦从 shell中激活这个环境,你就可以很方便地用 pip install在本地安装包了。

首先,这听起来可能有点奇怪。为什么会有人想要这么做呢?因为这不仅可以帮助你处理涉及跨版本的Python包的依赖关系所带来的问题,而且可以让你能够在不破坏其他重要环节的前提下快速地试验。假设你建立了一个网页应用,用的是包awesom_template的0.8版本,但是你的新数据产品需要这个包的1.2版本。在这种情况下,你该怎么办?如果你使用virtualenv,你可以两者都用。

另外一个例子是,如果你在某台机器上没有管理员权限,那么你该怎么办?你没法用sudo pip install来安装包,因而没法进行数据分析。然而如果有virtualenv,则这些都不是事儿。

虚拟环境是软件开发者们高效协同的开发工具。环境可以保证软件在不同的机器上,以不同的依赖方式运行(比如生产或者开发服务器)。环境同时能够提醒其他开发者,这里有待开发的软件需求。Python的virtualenv 保证了软件是在其历史环境中被创建的,可以独立测试、协同部署。准备工作

假设你已经完成了前面的步骤,那么现在你已经准备好了。处理流程

使用如下步骤,安装和测试虚拟环境。

1.打开一个shell的命令行,输入如下命令:pip install virtualenv或者sudo pip install virtualenv

2.安装完成后,输入virtualenv,则你将会看到如下截屏中的内容。

3.创建一个临时路径,用如下命令转变你当前的路径:mkdir temp

cd temp

4.在这个路径下,创建你的第一个虚拟环境,命名为venv: virtualenv venv

5.你将会看到类似如下的文字:New python executable in venv/bin/pythonInstalling setuptools, pip...done.

6.现在,新的本地的Python 版本已经生成了。想要用它,只需要激活这个环境,使用如下代码:source./venv/bin/activate

7.注意,活动的脚本无法直接执行,需要先用source命令激活。此外,注意你的shell命令提示符可能已经发生了变化,前缀变成了venv,这表明你现在正在虚拟环境下工作。

8.要验证这一点,使用which命令来看看Python的位置:which python你将看到如下输出:/path/to/your/temp/venv/bin/python

9.接下来,安装些什么:pip install flask Flask是一个微型网站框架,用Python写的。这个命令同时会安装很多Flask用到的包。

10.最后,我们验证一下虚拟环境和管道带来的版本控制的力量:pip freeze >requirements.txtcat requirements.txt 输出应该如下:Flask==0.10.1 Jinja2==2.7.2 MarkupSafe== 0.19Werkzeug==0.9.4 itsdangerous==0.23 wsgiref==0.1.2

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载