数据科学导论:Python语言实现(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-03 13:56:17

点击下载

作者:(意)阿尔贝托·博斯凯蒂(Alberto Boschetti),(意)卢卡·马萨罗(Luca Massaron)

出版社:机械工业出版社

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

数据科学导论:Python语言实现

数据科学导论:Python语言实现试读:

前言

“千里之行,始于足下。”[1]——老子(公元前604——531年)

数据科学属于相对较新的知识领域,它需要成功融合线性代数、统计建模、可视化、计算语言学、图形分析、机器学习、商业智能、数据存储和检索等众多学科。

Python编程语言在过去十年已经征服了科学界,它现在是数据科学实践者不可或缺的工具,也是每一个有抱负的数据科学家的必备工具。Python为数据分析、机器学习和算法问题求解提供了快速、可靠、跨平台、成熟的开发环境。无论之前数据科学应用中阻止你掌握Python的原因是什么,这些都将通过我们简单的分步化解和示例导向的方法来解决,我们将帮助你在演示数据集和实际数据集上使用最直接有效的Python工具。

借助你现有的Python语法和结构知识(不要担心,如果你需要获取更多的Python知识,我们有一些Python教程),本书将从介绍建立基本的数据科学工具箱开始。接着,它将引导你进入完整的数据改写和预处理阶段。我们还需要花一定量的时间来解释数据类型的转换、修复、探索和处理等核心活动。然后,我们将演示高级数据科学操作,建立变量和假设选择的实验流程,优化超参数,有效地使用交叉验证和测试。最后,我们将完成数据科学精要的概述,介绍主要的机器学习算法、图的分析技术和所有用于呈现结果的可视化方法。

在数据科学项目的具体演示过程中,永远都伴有清晰的代码和简化的例子,以帮助你理解项目背后的机制和实际数据集。本书也会给你一些经验提示,帮助你立即上手当前的项目。准备好了吗?相信你已经准备踏上这个漫长而又值得期待的旅程了。本书内容

第1章介绍所有必需的基础工具(用于交互计算的shell命令、库和数据集),使用Python可以立即开始数据科学分析。

第2章阐明如何加载要处理的数据,当数据太大计算机不能处理时要采用替代技术。本章介绍了所有主要的数据操作和转换技术。

第3章提供了高级数据探索和操作技术,使用复杂的数据操作进行特征创建和精简、数据异常检测、验证技术应用等。

第4章带你学习Scikit-learn库中最重要的学习算法,演示了实际应用以及为了获得每种机器学习技术的最佳结果,指出了应该重点检查的关键数值和要调试的参数。

第5章详细介绍了一些实用又有效的数据处理技术,用于处理表示社会实体之间的关系或相互作用的数据。

第6章利用图形化表示完善数据科学概述。如果你想形象地表示复杂的数据结构、机器学习过程和结果,这些可视化技术是不可或缺的。阅读准备

本书提到的Python及其他数据科学工具,从IPython到Scikit-learn都能在网上免费下载。要运行本书附带的源代码,需要一台带有Windows、Linux或Mac OS操作系统的计算机。本书将分步介绍Python解释器以及运行示例所需要的其他工具和数据的安装过程。读者对象

本书基于你已经具备的一些核心技能,能使你变成高效的数据科学从业者。因此,我们假定你具有编程和统计学方面的基础知识。

本书提供的示例代码不需要你精通Python语言,但是假设你至少了解一些基础知识,如Python脚本编写、列表和字典数据结构、类对象的工作原理等。在阅读本书之前,花几个小时学习一下第1章推荐的网络课程,就可以快速获得这些知识,当然也可以学习其他相关教程。

本书并不需要高级数据科学的概念,我们提供的信息足够帮助你理解本书示例用到的核心概念。

总的来说,本书适合以下人员:

·有较少的Python编程经验和数据分析知识,但还没有数据科学算法等专业知识,有志于成为数据科学家的新手。

·能熟练运用R和Matlab等工具进行统计建模、愿意利用Python进行数据科学处理的数据分析师。

·有意学习数据操作和机器学习、不断拓展知识面的开发者和程序员。代码下载

读者可登录华章网站http://www.hzbook.com下载本书示例代码。[1] 目前国内比较认可的老子生卒年分别是公元前571年和公元前471年。译者有幸生于老子故里,对老子的传说和史料有所了解,但众多考证都只能给出一个大概的年限。这里译者对作者严谨的引述表示敬意,或许以后利用数据科学技术能从众多史料中挖掘出更确切的老子生平。—译者注第1章 新手上路

无论你是热切的数据科学学习者,还是基础扎实的数据科学从业者,都能从本书关于Python数据科学精要的介绍中受益。如果你已经具备一些前期经验,如基础编程、用Python语言编写通用的计算机程序、熟悉MATLAB或R等数据分析语言,阅读本书收获会更大。

本书直接探究Python数据科学,使用Python语言及其强大的数据分析和机器学习软件包,为你提供解决各种数据科学问题的快捷途径。本书提供的示例代码不要求你精通Python语言。不过,我们假定你至少应该了解一点基础的Python脚本、数据结构(比如列表和字典)和类对象的工作原理。如果你对该主题不够自信,或者掌握的Python语言知识极其有限,建议阅读本书之前先学习一下在线教程,如趣味编程网站Code Academy上的课程http://www.codecademy.com/en/tracks/python/,或者Google上的Python课程https://developers.google.com/edu/python/。这两个课程都是免费的,只需几个小时的学习就能获得阅读本书的全部基础知识。

在任何情况下都不要被本书开头提到的要求所吓倒;掌握Python数据科学应用不像你想象的那样困难。这只是我们假设读者应该具备的一些基础知识,因为我们的目的是直接进入数据科学应用的重点,而无需对所使用语言的概况解释太多。

那么,准备好了吗?让我们开始吧!

本章只是一个简短的介绍,我们将从一些基础知识开始,逐步展开并介绍以下主题:

·如何创建Python数据科学工具箱

·IPython的用法

·本书要使用的数据集的概述1.1 数据科学与Python简介

数据科学是相对较新的知识领域,尽管它的核心内容已经被计算机科学界研究了很多年。它的研究内容包括线性代数、统计建模、可视化、计算语言学、图形分析、机器学习、商务智能、数据存储与检索。

作为一个新的领域,读者必须考虑到目前数据科学的界定还不是很清晰,并且在不断地变化。由于该领域由多种学科构成,数据科学家各自的专业领域和能力不同,因此对这一领域的描述也不尽相同。

在这种情况下,作为职业数据科学家,什么才会是你高效地学习和使用的行业工具呢?我们相信Python会是最好的工具,本书将向你提供快速使用Python的所有重要信息。

另外,其他的工具如R和MATLAB是数据科学家解决统计分析和矩阵操作等具体问题的专用工具。然而,只有Python完整包含了数据科学家所需要的技能集合。这种多功能语言适合开发与演示,不管你是什么背景和专业,都很容易学习和掌握。

Python于1991年创建,是一种通用的、解释性和面向对象的语言,已经逐渐征服了科学界,成长为一个成熟的数据处理和分析的专业软件。它能够使你进行无数次的快速体验,轻松地进行理论扩展,并促进多种形式的科学应用。

目前,Python已成为数据科学不可或缺的工具,它的主要特性如下:

·Python可方便地集成不同的工具,为多种语言(Java、C、Fortran甚至原语)、数据策略和学习算法提供真正的统一平台。这些学习算法结合在一起,能帮助数据科学家制订新的、功能强大的解决方案。

·Python为数据分析和机器学习提供了一个大型、成熟的软件系统。确保提供数据分析课程需要的一切工具,甚至会更多。

·Python是通用的。不管你是什么编程背景和风格(面向对象或者过程式的),都会喜欢使用Python编程。

·Python是跨平台的。Python解决方案完美兼容Windows、Linux和Mac OS操作系统,不用担心它的可移植性。

·虽然Python是解释性语言,但与其他主流数据分析语言如R和MATLAB相比具有毋庸置疑的速度优势(尽管还不能与C、Java和新出现的Julia语言的速度相媲美)。得益于本书将要介绍的一些简单技巧,它还能变得更快。

·由于Python具有极小的内存占用和优秀的内存管理能力,它可以处理内存中的大数据。当进行数据加载、转换、切块、切片、保存或丢弃时,它会使用循环或再循环垃圾回收器自动清理内存中的数据。

·Python非常简单,易学易用。掌握了基础知识之后就可以立即开始编程,没有比这更好的学习方式了。1.2 Python的安装

首先,我们继续介绍Python所需要的环境设置,以便创建一个完整的数据科学工作环境,确保能对本书后面提供的示例代码和实验进行测试。

Python是一种开源的、面向对象的、跨平台的编程语言,与其直接竞争对手(比如C++和Java)相比非常简明,能在非常短的时间内创建工作软件原型。它仅仅是因为这个特点就成为数据科学家工具箱中最常用语言的吗?当然不是。它还是一种通用语言,能为一系列问题和需求提供各种各样的软件包,的确非常灵活。1.2.1 Python 2还是Python 3

Python有两个主要分支:Python 2和Python 3。尽管Python 3是最新的版本,由于一些库在新版本上不能运行,Python 2仍然是科学领域使用最多的版本(见http://py3readiness.org关于兼容性的概述)。实际上,在Python 3解释器上运行某些Python 2开发的代码是行不通的。最新的版本做了重大改变,这影响了以前版本的兼容性。因此,请记住Python 3和Python 2之间不具有向后兼容性。

为了照顾大多数读者和从业人员,本书所有的示例都将采用Python 2的语法编写(在本书撰写时,最新版本是2.7.8)。由于两个版本之间的实际语法差异非常小,我们鼓励使用Python 3的高级用户自己调整和优化相关代码,使其适应自己喜欢的编程环境。1.2.2 分步安装

没有使用过Python的数据科学新手(假定他们还没有安装Python),需要先从Python主页下载安装程序https://www.python.org/downloads/,然后安装在本地机器上。

注意:本节提供了Python的分步安装方法,你能完全控制安装什么软件包。当需要在单个机器上安装以处理不同的数据科学任务时,这非常有帮助。无论如何,逐步安装确实需要花费时间和精力。相反,安装一个现成的科学发行版,将减轻程序安装的负担。这样可以节省时间,甚至避免很多麻烦,因而非常适合初学者,尽管它会在机器上一次性安装大量的软件包(其中大部分都不会用到)。因此,如果你想通过一个简单的安装程序立即开始使用,可跳过这一部分,直接进入下一节。

Python是一个多平台的编程语言,你要为Windows系统或者UNIX类操作系统寻找相适应的安装程序。需要注意的是,有些Linux发行版(如Ubuntu)已经在库中封装了Python 2,这使得程序安装的过程更加容易。

1)打开Python shell脚本,在终端输入“python”,或者直接点击Python图标。

2)然后进行安装版本测试,在Python交互式shell或REPL(交互式编程环境)中运行如下代码:

3)如果提示语法错误,这表示正在运行的版本是Python 3而不是Python 2。如果没有遇到错误,你会看到Python的版本属性为“attribute major=2”,那么恭喜你运行了正确的Python版本。现在你可以进行下一步的工作了。

需要声明的是,在终端命令行输入命令时,命令前的系统提示符为“$>”。否则,如果是在Python REPL环境中,命令前的系统提示符为“>>>”。1.2.3 Python核心工具包一瞥

Python有两个最主要的特征,一个是与其他语言相融合的能力,另一个是成熟的软件包系统。后者很好地体现在Python软件包索引PyPI(https://pypi.python.org/pypi)中,PyPI是大多数Python软件包的公共仓库。

下面将要介绍的软件包具有很强的数据分析能力,组成了完整的数据科学工具箱,它们具有高度优化的工作函数、最佳的内存配置,易于通过优化性能进行脚本操作。下一节将介绍软件的具体安装过程。

受R和MATLAB中等类似工具的启发,我们将一起探讨怎样使用少量的Python命令来处理数据,这样不需要写太多代码或者重新开发,就可以对数据进行探索、转换、实验和学习。

1.NumPy

NumPy是Travis Oliphant的作品,是Python语言真正的主力分析工具。它为用户提供了多维数组,以及对这些数组进行多种数学操作的大型函数集。数组是沿多个维度排列的数据块,它实现了数学的向量和矩阵。数组不仅仅用来存储数据,还用于快速矩阵运算(矢量化),是解决特殊数据科学问题必不可少的。

·网站地址:http://www.numpy.org/

·本书出版时的版本:1.9.1

·推荐安装命令:pip install numpy

Python社区采用的一般惯例是导入NumPy模块时,建议改变其名称为np:

这样的模块引用方法将贯穿本书。

2.SciPy

SciPy是Travis Oliphant、Pearu Peterson和Eric Jones等人的原创作品,它完善了NumPy的功能,为多种应用提供了大量科学算法,如线性代数、稀疏矩阵、信号和图像处理、最优化、快速傅里叶变换等。

·网站地址:http://www.scipy.org/

·本书出版时的版本:0.14.0

·推荐安装命令:pip install scipy

3.pandas

pandas工具包能处理NumPy和SciPy所不能处理的问题。由于其特有的数据结构DataFrames(数据框)和Series,pandas可以处理包含不同类型数据的复杂表格(这是NumPy数组无法做到的)和时间序列。感谢Wes McKinney的创作,pandas可以轻松又顺利地加载各种形式的数据。然后,可随意对数据进行切片、切块、处理缺失元素、添加、重命名、聚合、整形和可视化等操作。

·网站地址:http://pandas.pydata.org/

·本书出版时的版本:0.15.2

·推荐安装命令:pip install pandas

通常,pandas模块的导入名称为pd:

4.Scikit-learn

Scikit-learn最初是SciKits(SciPy工具包)的一部分,它是Python数据科学运算的核心。它提供了所有机器学习可能用到的工具,如数据预处理、监督学习和无监督学习、模式选择、验证和误差指标等。我们在本书中将详细讨论这个工具包。Scikit-learn是谷歌编程之夏(Google Summer of Code)的一个项目,由David Cournapeau于2007年发起。自2013年开始,被INRIA(法国国家信息与自动化研究所)的研究人员接管。

·网站地址:http://scikit-learn.org/stable/

·本书出版时的版本:0.15.2

·推荐安装命令:pip install scikit-learn

注意:scikit-learn导入模块名为“sklearn”。

5.IPython

科学方法需要对不同假设可再现地进行快速验证。Fernando Perez创建了IPython,满足了Python交互式shell命令的需要,它是基于shell、Web浏览器和应用程序接口的Python版本,具有图形化集成、自定义指令、丰富的历史记录(JSON格式)和并行计算等增强功能。IPython是本书最为推崇的工具包,它通过脚本、数据和相应结果清晰又有效地说明了各种操作。

·网站地址:http://ipython.org/

·本书出版时的版本:2.3

·推荐安装命令:pip install"ipython[notebook]"

6.Matplotlib

Matplotlib由John Hunter原创开发,是一个包含各种绘图模块的库,能根据数组创建高质量的图形,并交互式地显示它们。

matplotlib提供了pylab模块,pylab包含许多像MATLAB一样的绘图组件。

·网站地址:http://matplotlib.org/

·本书出版时的版本:1.4.2

·推荐安装命令:pip install matplotlib

使用如下命令,可以轻松导入可视化所需要的模块:

7.Statsmodels

Statsmodels以前是SciKits的一部分,是SciPy统计函数的补充。Statsmodels模块包含通用线性模型、离散选择模型、时间序列分析、一系列描述统计以及参数和非参数检验等特性。

·网站地址:http://statsmodels.sourceforge.net/

·本书出版时的版本:0.6.0

·推荐安装命令:pip install statsmodels

8.Beautiful Soup

Beautiful Soup由Leonard Richardson创建,是一个很棒的HTML/XML解析器,用来分析从互联网上抽取的HTML和XML文档。甚至在网页有异常、矛盾和不正确的标签时,即出现“tag soups”(因此得名)情况下,它的效果也是出奇的好。感谢Beautiful Soup,选择解析器之后(一般情况下,Python标准库中的HTML解析器效果就很好),就可以对页面上的对象定位,并提取文本、表格以及其他有用的信息。

·网站地址:http://www.crummy.com/software/BeautifulSoup/

·本书出版时的版本:4.3.2

·推荐安装命令:pip install beautifulsoup4

注意:Beautiful Soup的导入模块名为“bs4”。

9.NetworkX

NetworkX由美国洛斯阿拉莫斯国家实验室(Los Alamos National Laboratory)开发,是一个专门进行现实生活网络数据创建、操作、分析和图示的软件包,它可以轻松地进行具有百万个节点和边的图操作。除了专门的图数据结构和良好的可视化方法(2D和3D),它为用户提供了许多标准的图的度量方法和算法,如最短路径、中心性、成分、群体、聚类和网页排名。在第5章中我们会频繁使用这个软件包。

·网站地址:https://networkx.github.io/

·本书出版时的版本:1.9.1

·推荐安装命令:pip install networkx

通常,NetworkX导入名称为“nx”:

10.NLTK

自然语言工具箱(NLTK)能够访问语料和词汇库,提供从分词到词性标注、从树模型到命名实体识别等统计自然语言处理(Natural Language Processing,NLP)的一整套函数。最初,该软件是Steven Bird和Edward Loper为宾夕法尼亚大学自然语言处理教学设施CIS-530开发的。这是一款极好的工具,可以进行自然语言处理系统的原型开发和搭建。

·网站地址:http://www.nltk.org/

·本书出版时的版本:3.0

·推荐安装命令:pip install nltk

11.Gensim

Gensim是由Radim开发的开源软件包,在并行分布式在线算法的帮助下,能进行大型文本集合分析。它具有许多高级功能,如实现了潜在语义分析(Latent Semantic Analysis,LSA)、通过LDA(Latent Dirichlet Allocation)进行主题建模等。Gensim还包含功能强大的谷歌word2vec算法,能将文本转换为矢量特征,再使用此矢量特征进行有监督和无监督的机器学习。

·网站地址:http://radimrehurek.com/gensim/

·本书出版时的版本:0.10.3

·推荐安装命令:pip install gensim

12.PyPy

PyPy不是软件包,它是Python 2.7.8的替代产品,支持大多数常用的Python标准包(遗憾的是,目前不完全支持NumPy)。PyPy的一个主要优势是提高了运行速度及内存处理能力,因此,非常适用于大型数据上的繁重操作,它应该成为大数据处理策略的一部分。

·网站地址:http://pypy.org/

·本书出版时的版本:2.4.0

·下载网页:http://pypy.org/download.html1.2.4 工具包的安装

Python本身不会绑定所有你需要的工具包,除非你使用的是专门的定制版本。因此,安装所需要的工具包可以使用命令“pip”或者“easy_install”。在命令行运行这两个命令,轻而易举地就能进行Python工具包的安装、升级和移除。要查看本地计算机上安装了哪些工具,可以运行命令:

或者,也可以运行如下命令:

如果这两个命令运行后都提示错误,你需要使用其中一个进行软件安装。建议使用“pip”,因为它被认为是“easy_install”的改进版。另外,通过“pip”安装的工具包可以卸载,如果你碰巧安装失败了,“pip”也会使你的系统保持清洁。

要安装“pip”,可以按照如下网页上的说明进行操作:https://pip.pypa.io/en/latest/installing.html。

大多数Python的最新版本会默认安装“pip”,所以,你的系统可能已经安装了“pip”。如果没有安装,最安全的方式是从https://bootstrap.pypa.io/get-pip.py上下载get-pi.py脚本,然后使用如下命令运行它:

以上脚本也可从https://pypi.python.org/pypi/setuptools/上下载安装工具,它包含了easy_install。

现在就可以安装运行本书示例所需要的工具包了。安装通用工具包,只需要运行如下命令:

或者,也可以运行命令:

此后,工具包及其所有依赖项将被下载并安装。如果你不确定某个库是否已经安装,只需尝试导入其中的一个模块。如果Python解释器出现“ImportError”错误,可以断定还没有安装此库。

当NumPy库已经安装时,情况如下:

当NumPy库没有安装,会发生如下情况:

对于后一种情况,需要通过“pip”或“easy_install”先安装相应的工具包。

注意:小心不要将工具包(package)和模块(module)弄混淆。使用pip安装的是工具包,在Python中导入的是模块。有时候工具包和模块的名字相同,但是多数情况下,它们并不一样。例如,“sklearn”模块就包含在名为“Scikit-learn”的工具包中。

最后,要搜索并浏览适合Python的工具包,请查看网站https://pypi.python.org/。1.2.5 工具包升级

很多时候,因为有些依赖项需要新版本支持,或者你会用到新版本的附加功能,你不得不升级自己的工具包。首先,查看__version__属性,检查所安装的库的版本,下面以numpy为例:

现在如果要将它升级到较新的版本,如1.9.1版,可以在命令行运行如下命令:

或者,使用命令:

最后,如果你有兴趣将它升级到最新版本,只需运行如下命令:

或者,也可以使用命令:1.3 科学计算发行版

正如前面已经介绍过的,创建工作环境对于数据科学家来说是相当费时的操作。首先,你需要安装Python,然后逐个安装需要的库(有时候,安装过程可能不会像你想象的那么顺利)。

如果你想节省时间和精力,同时确保有一个完整的Python工作环境,那么你只需要下载、安装并运行Python科学计算发行版就可以了。除了Python,科学计算发行版还包括各种预安装的工具包,有时候甚至会提供附加工具和IDE(集成开发环境)。其中有些工具包是数据科学家所熟知的,在后面的章节中我们会介绍这些工具包的关键特性。

建议你立即下载、安装一个科学计算发行版,如Anaconda版(这是工具包最齐全的版本)。将本书的示例练习完后,可以完全卸载发行版,再单独安装Python,只附带少数几个项目需要的工具包就可以了。1.3.1 Anaconda

Anaconda(https://store.continuum.io/cshop/anaconda/)是由Continuum Analytics提供的科学计算发行版,包括近200个工具包,常见的包有NumPy、SciPy、pandas、IPython、Matplotlib、Scikit-learn和NLTK等。它是一个跨平台的版本,可以与其他现有的Python版本一起安装。其基础版本是免费的,其他具有高级功能的附加组件须单独收费。Anaconda自带二进制的包管理器conda,通过命令行来管理安装包。正如其网站上所介绍的,Anaconda的目标是提供企业级的Python发行版,进行大规模数据处理、预测分析和科学计算。1.3.2 Enthought Canopy

Enthought Canopy(https://www.enthought.com/products/canopy/)是Enthought公司推出的Python科学计算发行版,包括70多个预装软件包,如NumPy、SciPy、Matplotlib、IPython和pandas等。该发行版主要是针对工程师、数据科学家、定量数据分析师和企业用户。它的基础版本是免费的(名为Canopy Express),如果需要高级功能,必须付费购买。Enthought Canopy是一个跨平台的发行版,其命令行安装工具是canopy_cli。1.3.3 PythonXY

PythonXY(https://code.google.com/p/pythonxy/)是免费的Python科学计算发行版,也是由社区维护的开源软件。它包含很多工具包,如NumPy、SciPy、NetworkX、IPython和Scikit-learn等。它还提供了一个交互式开发环境Spyder,灵感来自于MATLAB IDE。它仅适用于微软的Windows系统,命令行安装工具是“pip”。1.3.4 WinPython

WinPython(http://winpython.sourceforge.net/)是免费和开源的Python发行版,同样由社区维护。它是专为科学家设计的,包含许多工具包,如NumPy、SciPy、Matplotlib和IPython等。它也使用Spyder作为IDE更关注用户的便携式安装体验(可以安装在任何目录下,甚至是U盘里)。它只能在微软Windows系统下工作,命令行工具是WinPython包管理器(WPPM)。1.4 IPython简介

IPython是交互式任务的专用工具,它的特殊命令能够帮助开发人员更好地理解正在编写的代码。

这些命令是:

·?和??:输出的详细描述(使用“??”能得到更详细的帮助信息)。

·%:这是魔术函数的特殊调用格式。

让我们通过示例演示这些命令的用法。首先使用“ipython”命令启动交互式控制台,运行IPython,如下所示:

然后,第一行代码(IPython编号为“[1]”)创建了包含10个数字(从0到9)的列表,将结果赋值给对象obj1。

在编号为[2]的命令行,使用IPython命令“?”查看obj1对象。IPython进行对象内省,输出对象的详细信息(obj1是一个列表,包含[0,1,2,…,9]十个数值元素),最后输出列表的解释文档。这不是这个例子的重点。然而,对于复杂的对象,使用“??”而不是“?”命令,能得到更详细的输出。

在编号为[3]的命令行,对Python赋值语句(x=100)使用魔术函数“timeit”。魔术函数多次运行此指令,存储执行指令需要的运算时间。最后,输出运行Python函数的平均时间。

在编号为[4]的命令行,运行帮助函数“quickref”,显示IPython特殊函数的快速参考,输出所有可能函数的列表。

你已经看到,每次使用IPython都会有一个输入单元,如果有结果要通过“stdout”输出,还会有一个输出单元。每个输入都有序号,这样输入就可以在IPython环境内部进行引用。本书代码不需要提供这样的引用,因此,我们只使用通用的“In:”和“Out:”提示符表示输入和输出单元,而不需要标记它们的序号。只需要复制命令到IPython代码单元“In:”后,就能在输出单元“Out:”后显示结果。

因此,基本的输入输出符号格式如下:

·In:命令

·Out:输出结果

否则,如果直接在Python控制台操作,将使用下面的命令形式:

根据需要,有时候命令行输入和输出将采用如下形式:

此外,在IPython控制台运行bash命令,需要在命令前面加一个感叹号“!”:1.4.1 IPython Notebook

IPython Notebook的主要目标是易于“讲故事”,“讲故事”是数据科学的关键,因为你必须有能力做到以下几点:

·查看算法每步运行的中间结果(调试)。

·只运行代码的部分片段或单元。

·存储中间结果,并能修改它们。

·展示你的成果(可以是文本、代码和图像等形式)。

因此就有了IPython,它能实现前面的全部功能。

1)启动IPython Notebook,只需运行如下命令:

2)桌面会弹出一个Web浏览器窗口,该窗口由IPython服务器支持。Web浏览器主窗口如下:

3)然后,点击“New Notebook”打开一个新的窗口,如下面的截图所示:

这就是你用来创作自己故事的Web应用程序。它和PythonIDE非常相似,窗口底部由可以编写代码的单元(cell)组成。

这里的单元既可以是一段文本(标记语言格式),也可以是一段代码。如果是后一种情况,你可以直接运行代码,任何最终结果(标准输出)都将在此单元下显示。下面是一个非常简单的例子。

在有标识符“In:”的单元中导入random模块,生成一个0到100之间的随机数,将该数值赋给变量a,再进行屏幕输出。运行该单元,显示在“Out:”后的结果是一个随机数。在下一个单元中,输出变量a的两倍。

正如你所看到的,这是一个很好的调试工具,能决定给定运算中最合适的参数。现在,如果我们再运行第一个单元中的代码会出现什么情况呢?由于变量a的变化,第二个单元的输出会不同吗?其实,答案是不会。这是因为每一个单元都是独立自主的。但是,当再次运行第一个单元时,会陷入这种变量不一致的状态:

注意:我们发现单元序号也发生了变化,方括号中的数字从1变为3,因为这是自Notebook打开后第三次运行代码。由于每个单元都是独立自主的,通过查看这些序号,就能知道每个单元的执行顺序。

IPython是一个简单、灵活又强大的工具。然而,正如从前面例子中所看到的,对Notebook中要用到的变量更新时必须注意,更新代码后记得运行所有单元,这样才能得到一致的状态。

保存IPython Notebook时,产生的.ipynb文件是JSON格式,它包含所有的单元及其内容,还有输出结果。这使得事情变得更容易,因为不需要运行代码来查看Notebook(实际上也不需要安装Python及其工具包)。特别是当输出中包含图片、代码中有耗时的例程时,这显得非常方便。IPython Notebook的一个缺点是其JSON结构的文件格式不便于人们阅读。其实,它能包含图像、代码、文本等多种形式的信息。

现在,让我们讨论一个与数据科学相关的例子(先不要担心能否全部理解):

在这个单元中,导入了一些Python模块:

然后,在cell[2]中加载数据集,并显示数据集的大小。该数据集是著名的波士顿房价数据集,包含波士顿郊区506栋房子的数据,每栋房子的数据按列组织。每列数据表示一种特征,特征是观测量的特性。机器学习使用特征建立模型,然后将特征转变为预测值。如果你具有统计方面的背景,可以增加一些能作为模型变量的特征(数值随着观测量的变化而变化)。

可以通过以下命令查看数据集的完整描述:print boston_dataset.DESCR。

加载观测数据及其特征之后,为了演示IPython是如何高效地形成数据科学方案的,要对数据集进行一些转换和分析。这里要用到一些类(如SelectKBest)和方法(如.getsupport()或者.fit())。不用担心现在还不能完全理解这些内容,本书稍后还将展开详细讨论。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载