购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言
Preface

“塔尔山上有黄金!”

欢迎阅读本书!在本书中,读者将学习当今最引人注目的前沿计算技术,并使用Python进行编程。Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。

开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。

几十年来,一些趋势已经强有力地显现出来。计算机硬件已经迅速变得更快、更便宜、更小;互联网带宽已经迅速变得越来越大,同时也越来越便宜;优质的计算机软件已经变得越来越丰富,并且通过“开源”方式免费或几乎免费;很快,“物联网”将连接数以百亿计的各种可想象的设备。这将导致以快速增长的速度和数量生成大量数据。

在今天的计算技术中,最新的创新都是关于数据的—数据科学、数据分析、大数据、关系数据库(SQL)以及NoSQL和NewSQL数据库,我们可以通过Python编程的创新处理方式解决每一个问题。

需要数据科学技能的工作

2011年,麦肯锡全球研究院发表了报告“Big data: The next frontier for innovation, competition and productivity”。报告认为:“仅美国就面临着14万到19万深度分析人员的缺口,以及150万能分析大数据并可根据分析结果做决策的经理和分析师的缺口。” 目前情况仍然如此。2018年8月的“LinkedIn Workforce Report”称,美国数据科学人员的缺口超过15万 。来自IBM、Burning Glass Technologies和商业高等教育论坛的2017年报告称,到2020年,美国有数十万个需要数据科学技能的新工作岗位

模块化结构

本书的模块化结构(见下图)有助于满足各种专业读者的多样化需求。

000

第1~10章介绍Python编程。在这些章中,每一章都包括一个简短的数据科学入门部分,用于介绍人工智能、基础的描述性统计、集中趋势度量、离中趋势度量、模拟、静态和动态可视化、用于数据探索和数据整理的pandas、使用CSV文件、时间序列和简单线性回归。这些内容将帮助读者为第11~16章中数据科学、人工智能、大数据和云案例研究方面的学习做好准备,读者通过学习完整的案例研究可学会使用真实的数据集。

在学习完关于Python编程的第1~5章所有内容及第6~7章的部分关键内容之后,读者将能够理解第11~16章中的大部分案例研究。前言后面的“章节依赖性”部分将帮助教师在本书独特的结构背景下规划他们的专业课程。

第11~16章充满了酷炫、强大、新颖的例子,提供了多种主题的实践案例研究,如自然语言处理,Twitter数据挖掘,IBM Watson认知计算,包括分类和回归在内的有监督机器学习,聚类无监督机器学习,卷积神经网络深度学习,递归神经网络深度学习,包括Hadoop、Spark、NoSQL、物联网在内的大数据等。在此过程中,读者将掌握广泛的数据科学术语和概念,从简短的定义到在小型、中型和大型程序中使用的概念。通过浏览本书详细的目录和索引能够了解本书所覆盖的内容。

主要特点

保持简单(KIS)、保持小规模(KIS)、保持前沿(KIS)

即时反馈:用IPython探索、发现和实验

Python编程基础

538个代码示例

避免烦琐的数学,倾向于文字解释

可视化

数据实验

GitHub

云计算实践

数据库、大数据和大数据基础设施

人工智能案例研究

内置类型:列表、元组、集合、字典

使用NumPy数组和pandas的 Series DataFrame 进行面向数组的编程

文件处理和序列化

基于对象的编程

面向对象编程

可重复性

性能

大数据和并行化

章节依赖性

如果你是一名为专业培训课程规划教学大纲的培训师,或者是一名要决定阅读哪些章节的开发人员,下面的内容将帮助你做出最佳决策。请阅读前面的模块化结构图,你将很快熟悉这本书独特的结构。按顺序讲授或阅读本书是最容易的,但是,第1~10章末尾的数据科学入门部分和第11~16章中的案例研究的大部分内容只需要第1~5章的知识和下面讨论的第6~10章的小部分知识。

第一部分:Python基础知识快速入门

建议读者按照以下顺序阅读各章:

第二部分:Python数据结构、字符串和文件

下面总结了第6~9章的章节间依赖性,这里假设读者已经阅读了第1~5章:

第三部分:Python高级主题

下面总结了第10章的章节间依赖性,这里假设读者已经阅读了第1~5章:

第四部分:人工智能、云和大数据案例研究

下面总结了第11~16章的章节间依赖性,这里假设读者已经阅读了第1~5章。第11~16章的大部分内容还需要6.2节的字典基础知识。

Jupyter Notebook

为了方便读者,我们在Python源代码( .py )文件中提供了本书的代码示例,供命令行IPython解释器使用,以及作为Jupyter Notebook( .ipynb )文件使用,读者可以将其加载到Web浏览器中执行。

Jupyter Notebook是一个免费、开源的项目,它使我们能够将文本、图形、音频、视频和交互式编码功能结合起来,以便在Web浏览器中快速方便地输入、编辑、执行、调试和修改代码。文章“What Is Jupyter?”中介绍过:

Jupyter已经成为科学研究和数据分析的标准。它将计算和参数打包在一起,让我们构建“计算故事”;……并简化了将工作软件分发给队友和同事的问题。

根据我们的经验,这是一个很好的学习环境和快速原型制作工具。出于这个原因,我们使用Jupyter Notebook而不是传统的IDE,例如Eclipse、Visual Studio、PyCharm或Spyder。学者和专业人士已经广泛使用Jupyter来分享研究成果。Jupyter Notebook是通过传统的开源社区机制 提供支持的(参见后面的“获取Jupyter帮助”部分)。有关软件安装的详细信息,请参阅前言后面的“开始阅读本书之前”;有关运行本书示例的信息,请参阅1.5节。

协作和共享结果

团队合作和交流研究结果对开发人员来说是很重要的,对于在工业界、政府部门或学术界担任或准备担任数据分析师职位的开发人员来说:

可重复性:Jupyter Notebook的有力案例

在数据科学和一般科学中,实验和研究应该是可重复的。这已经在文献中提过多年,包括:

从本质上讲,可重复性捕获了用于生成结果的完整环境,包括硬件、软件、通信、算法(尤其是代码)、数据和数据来源(起源和沿袭)。

Docker

在第16章中,我们将使用Docker。Docker是一个将软件打包到容器中的工具,而容器可以方便地、可重复地和跨平台可移植地将执行软件所需的所有内容捆绑到该软件中。我们在第16章中使用的一些软件包需要复杂的设置和配置。对于其中的许多软件包,读者可以下载已有的免费Docker容器。这使读者可以避免复杂的安装问题,并在台式机或笔记本电脑上进行本地软件的执行,使Docker成为帮助你快速方便地开始使用新技术的好方法。

Docker还有助于可重复性。读者可以创建自定义Docker容器,这些容器配置了每个软件的版本以及你在研究中使用的每个库。这将使其他开发人员能够重新创建你使用的环境,然后重现你的工作,并帮助你重现自己的结果。在第16章中,你将使用Docker下载并执行一个预配置的容器,以便使用Jupyter Notebook编写和运行大数据Spark应用程序。

特殊功能:IBM Watson分析和认知计算

在早期研究中,我们对IBM Watson的兴趣日益增长。我们调查了竞争性服务,并发现了Watson对于“免费升级”的“无须信用卡支付”政策,这使其成为读者最友好的选择之一。

IBM Watson是一个广泛应用于各种实际场景的认知计算平台。认知计算系统模拟人类大脑的模式识别和决策能力,以便在“消耗”更多数据时“学习” 。本书包含一个重要的
Watson动手实践示例。我们使用免费的“Watson Developer Cloud:Python SDK”,它提供的API使我们能够以编程方式与Watson的服务进行交互。Watson使用起来很有趣,也是传播你的创意成果的绝佳平台。本书将演示或使用以下Watson API:对话、发现、语言翻译、自然语言分类器、自然语言理解、个性洞察服务、语音转文本、文本转语音、语调分析器和视觉识别。

Watson的Lite层服务和一个很酷的Watson案例研究

IBM通过为其许多API提供免费的Lite层来鼓励大家学习并进行实验 。在第13章中,读者将尝试许多Watson服务的演示程序 。然后,你将使用Watson的文本转语音、语音转文本和翻译服务的Lite层,实现一个“旅行者助理”翻译应用程序。你以英语问一个问题,然后该应用程序会将你的语音转换为英语文本,再将该文本翻译为西班牙语并朗读。接下来,你将以西班牙语回复(如果你不会说西班牙语,我们会给你提供可以使用的音频文件),然后该应用程序快速把语音转换为西班牙语文本,再将该文本翻译为英语并用英语朗读。很酷的案例!

教学方法

本书包含大量从许多领域提取的示例。读者将使用真实的数据集来完成有趣的、真实的示例。本书注重良好的软件工程规范和程序可读性。

使用字体进行强调

关键术语以粗体显示,方便读者参考相关内容,Python代码以特殊字体显示,例如, x = 5

538个代码示例

本书的538个示例包含大约4000行代码。对于包含这么多内容的一本书来说,这个代码量相对较小,这是因为Python是一种表达性语言。此外,本书的编码风格是尽可能地使用强大的类库来完成大部分工作。

160个图、表

本书提供了丰富的图、表。

编程智慧

本书将两位作者丰富的编程和教学经验融入编程智慧的讨论中,包括:

本书使用的软件

本书使用的软件适用于Windows、macOS和Linux,可从互联网免费下载。本书的示例是使用免费的Anaconda Python发行版编写的。该发行版包括读者需要的大多数Python库、可视化库和数据科学库,以及IPython解释器、Jupyter Notebook和Spyder,这些被认为是最好的Python数据科学IDE中的一部分。本书仅使用IPython和Jupyter Notebook进行程序开发。前言后面的“开始阅读本书之前”讨论了安装Anaconda的方法以及使用书中示例所需的一些其他项目。

Python文档

在阅读本书时,你会发现以下文档特别有用:

获取问题答案

有关Python及其常规编程的流行在线论坛包括:

此外,许多供应商为其工具和库提供论坛。本书使用的许多库都在github.com上进行管理和维护。一些库维护者通过该库的GitHub页面上的“Issues”选项卡提供技术支持。如果读者无法在线找到问题的答案,请参阅我们的网页http://www.deitel.com

获取Jupyter帮助

Jupyter Notebook通过以下方式提供相关支持:

补充

为了充分利用本书,读者应该阅读书中的相应讨论并执行每个代码示例。在本书的网页http://www.deitel.com上,我们提供了:

有关下载说明,请参阅前言后面的“开始阅读本书之前”。

联系作者

如有疑问或想提交勘误,请发送电子邮件给我们:

deitel@deitel.com

或通过社交媒体与我们互动:

致谢

感谢Barbara Deitel长时间致力于本项目的互联网研究。我们也很荣幸能够与Pearson的专业出版团队合作。感谢我们的朋友兼同事、培生IT专家组的副总裁Mark L. Taub的工作和25年来的指导。Mark和他的团队在Safari服务(https://learning.oreilly.com/)上发布了我们的专业书籍、LiveLessons视频产品和学习路径。他们还赞助了我们的Safari在线培训研讨会。Julie Nahil负责管理本书的出版。英文原书的封面由Chuti Prasertsith设计。

感谢审稿人的辛勤工作。Patricia Byron-Kimball和Meghan Jacoby招募审稿人并管理了审核流程。审稿人严格审查书稿,为提高本书的准确性、完整性和及时性提供了无数的建议。

审稿人

书籍审稿人

Daniel Chen,Lander Analytics 公司的数据科学家

Garrett Dancik,东康涅狄格州立大学计算机科学系与生物信息学系副教授

Pranshu Gupta,迪西尔斯大学计算机科学系助理教授

David Koop,马萨诸塞大学达特茅斯分校助理教授、数据科学委员会副主任

Ramon Mata-Toledo,詹姆斯·麦迪逊大学计算机科学系教授

Shyamal Mitra,得克萨斯大学奥斯汀分校计算机科学系高级讲师

Alison Sanchez,圣地亚哥大学经济学专业助理教授

José Antonio González Seco,IT顾问

Jamie Whitacre,独立数据科学顾问

Elizabeth Wickes,伊利诺伊大学信息科学学院讲师

提案审稿人

Dr. Irene Bruno,乔治·梅森大学信息科学与技术系副教授

Lance Bryant,西盆斯贝格大学数学系副教授

Daniel Chen,Lander Analytics 公司的数据科学家

Garrett Dancik,东康涅狄格州立大学计算机科学系与生物信息学系副教授

Dr. Marsha Davis,中康涅狄格州立大学数学科学系主任

Roland DePratti,东康涅狄格州立大学计算机科学系兼职教授

Shyamal Mitra,得克萨斯大学奥斯汀分校计算机科学系高级讲师

Dr. Mark Pauley,内布拉斯加大学奥马哈分校跨学科信息学院生物信息学高级研究员

Sean Raleigh,威斯敏斯特学院数学系副教授、数据科学系主任

Alison Sanchez,圣地亚哥大学经济学专业助理教授

Dr. Harvey Siy,内布拉斯加大学奥马哈分校计算机科学系、信息科学与技术系副教授

Jamie Whitacre,独立数据科学顾问

在你阅读本书时,欢迎你提出评论、批评、更正和改进建议,请发送邮件至deitel@deitel.com,我们会及时回复。

再次欢迎你来到激动人心的Python编程开源世界,希望你喜欢使用Python、IPython、Jupyter Notebook、数据科学、人工智能、大数据和云计算进行先进的计算机应用程序开发。

Paul Deitel和Harvey Deitel /hDq8SbRcRykPOY+t7R4iQcb/Ve3QrfLgpe7hYBpXnF71VyMQVsS327QoL4/Lvnp

点击中间区域
呼出菜单
上一章
目录
下一章
×