配套代码获取方式:
1、微信关注“华章计算机”
2、在后台回复关键词:67845
1、便于自学。全书包含160个图表讲解,形象生动;在1-10章的每章结尾都提供数据科学入门案例,让你边学边用。易错知识点有特别提示。动态可视化效果提供更好的学习反馈。
2、标识清晰。关键术语加粗显示,Python代码以特殊字体显示;
3、示例全面。包括代码段和案例研究形式的538个实操示例;
4、Python知识覆盖范围广:控制语句、函数、字符串、文件、JSON序列化、CSV、异常;
5、数据科学入门:人工智能、基础统计、模拟、动画、随机变量、数据整理、回归;
6、人工智能、云和大数据案例研究:自然语言处理、Twitter数据挖掘、IBM Watson、机器学习、深度学习、计算机视觉、Hadoop、Spark、NoSQL、IoT。
本书对Python和数据科学基础知识进行了清晰的说明。感谢作者指出通过指定种子可以实现随机数生成器生成结果的可重复性。我喜欢书中使用字典和集合推导式实现简洁的编程的内容。7.6节展现了优先使用数组的原因,令人信服。本书介绍了良好的防御式编程方式。书中关于pandas Series和DataFrames的介绍非常精彩,是我所见过的最清晰的解释之一。数据整理部分的内容非常好。自然语言处理讲解得也很好!我学到了很多东西。
—Shyamal Mitra,得克萨斯大学高级讲师
我很喜欢面向对象编程的内容—使用doctest进行单元测试的做法非常好,因为可以通过docstring完成实际测试,从而使编程工作和测试工作能够同步进行。掷骰子示例中静态可视化和动态可视化的逐行说明非常棒。
真的很喜欢使用f字符串,而不是使用老式的字符串格式化方法。与基本的NLTK相比,TextBlob更容易使用,本书介绍了这一点。我以前从来没有用图形制作过词云,但是可以看到这是激励人们开始使用NLP的一个很好的示例。我喜欢本书后半部分的案例研究章节,它们确实很实用。我非常喜欢书中介绍的大数据示例,尤其是物联网示例。
—Daniel Chen,Lander Analytics公司的数据科学家
这本引人入胜的、高度易读的书将激发人们的好奇心,并激励初学者,帮助他们在Python编程、统计分析、数据处理、使用API、数据可视化、机器学习、云计算等方面奠定重要基础。关于Twitter API应用于情感分析方面的内容非常有用,我曾听过几节有关自然语言处理的课程,但本书非常清晰地介绍了相关工具和概念。我喜欢有关使用JSON和pickling进行序列化以及何时应使用哪一种方式的讨论(重点是应优先使用JSON而不是pickling),我很高兴得知JSON是一种更好、更安全的序列化方法!
—Jamie Whitacre,数据科学顾问
本书通过对示例代码的详细解释,清晰地展现了书中包含的内容。模块化结构、宽泛的现代数据科学主题以及附带的Jupyter Notebook中的代码,使得这本书对于各种背景的读者来说都是一个绝佳的学习资源。大数据章节很棒,涵盖了所有相关程序和平台;IBM Watson章节也很棒,它很好地概述了Watson应用程序。另外,还有很好的翻译示例,它们提供了“即时奖励”,读者一旦执行完任务,就会迅速得到结果,这非常令人满意。机器学习是一个庞大的主题,本书相关章节对其进行了很好的介绍,我喜欢其中的加利福尼亚房价数据示例,其与业务分析密切相关,这一章也给出了令人惊叹的可视化结果。
—Alison Sanchez,圣地亚哥大学经济学专业助理教授
我喜欢计算机科学、数据科学和统计主题的这种新组合。这对于构建不仅仅是将数学和计算机科学课程结合在一起的数据科学程序非常重要。像这样的书有助于扩展我们的产品范围以及将Python用作计算机和数据科学主题的桥梁。对于一个使用单一语言(多数情况是这样)的数据科学程序,我认为使用Python可能是可行的方法。
—Lance Bryant,西盆斯贝格大学
帮助读者利用大量现有的库以最少的代码完成任务。本书在介绍概念知识的同时提供了丰富的Python示例,读者可以修改这些示例以实现自己的数据科学问题解决方案。我喜欢有关云服务的内容。
我喜欢关于异常和回溯的讨论,也非常喜欢Twitter数据挖掘的章节,其中的示例关注真实数据源,并引入了许多分析技术(如可视化、NLP)。我还喜欢Python提供的模块,这些模块有助于隐藏一些复杂性。词云看起来很酷。
使用Python入门NLP非常容易,本书相关内容给我留下了深刻的印象。本书使用Keras对深度学习概念进行了有意义的概述。我喜欢关于流的示例。
—David Koop,马萨诸塞大学达特茅斯分校助理教授
我喜欢这本书!书中的示例绝对是亮点。
—Irene Bruno博士,乔治·梅森大学
阅读这本书非常令人兴奋。我喜欢它专注于数据科学和用于编写有用的数据科学程序的通用语言。数据科学部分的内容将本书与其他大多数Python入门书区分开来。
—Harvey Siy博士,内布拉斯加大学奥马哈分校
在审阅本书的过程中,我学到了很多东西,发现了AI令人兴奋的领域。我喜欢深度学习一章,它使我对该领域已经取得的成就感到惊讶。
—José Antonio González Seco,IT顾问
本书介绍了一种令人印象深刻、旨在进行探索和实验的实用编程方法。
书中涵盖了一些最现代的Python语法方法,介绍了Python编程风格和文档的社区标准。机器学习一章在引导人们完成Python中ML所需的样板代码方面做得很好,案例研究部分很好地展示了如何完成此任务。该章的示例非常直观。许多模型评估任务也是非常好的编程实践。我可以想象到读者观看动画化代码时一定会非常兴奋。
—Elizabeth Wickes,伊利诺伊大学信息科学学院讲师
我真的很喜欢实时的IPython输入输出方式,也非常喜欢这本Python图书,我是作者的超级粉丝。
—Mark Pauley博士,内布拉斯加大学奥马哈分校
本书对大数据概念做了出色介绍,尤其是Hadoop、Spark和IoT主题,所讲示例非常现实和实用。作者在结合编程和数据科学主题方面做得非常出色,以易于理解的方式介绍了相关内容,并附有操作示例。几乎所介绍的所有概念都附带一个可运行的示例。通过扑克牌图像示例对Python中的面向对象编程进行了全面的概述,这肯定会吸引读者。
—Garrett Dancik,东康涅狄格州立大学
一段时间以来,我一直在寻找一本基于Python的数据科学主题的书,这本书应涵盖最相关的那些技术。我终于找到了。本书是该领域从业人员的必备书籍。机器学习章节真的值得推荐!动态可视化效果很棒。
—Ramon Mata-Toledo,詹姆斯·麦迪逊大学教授
“塔尔山上有黄金!”
欢迎阅读本书!在本书中,读者将学习当今最引人注目的前沿计算技术,并使用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年,美国有数十万个需要数据科学技能的新工作岗位。
模块化结构
本书的模块化结构(见下图)有助于满足各种专业读者的多样化需求。
第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)
保持简单—在本书的每个方面,我们都力求简洁明了。例如,当介绍自然语言处理时,我们使用简单直观的TextBlob库而不是更复杂的NLTK。在深度学习中,我们使用Keras而不是TensorFlow。通常,当可以使用多个库来执行类似的任务时,我们使用最简单的那一个。
保持小规模—本书538个示例中的大多数都规模很小,通常只有几行代码,且后面跟着IPython的即时交互式运行结果。书中也包含了40个较大的脚本和深入的案例研究。
保持前沿—我们阅读了大量最新的Python编程和数据科学书籍,浏览、阅读或观看了大约15,000篇最新文章、研究论文、白皮书、视频、博客文章、论坛帖子和文档片段。这使我们能够掌握Python、计算机科学、数据科学、人工智能、大数据和云社区的“脉搏”。
即时反馈:用IPython探索、发现和实验
学习本书的理想方法是,在阅读的同时运行代码示例。在整本书中,我们始终使用IPython解释器,它提供了友好的即时反馈交互模式,以便快速探索、发现和实验Python及其大量的库。
大多数代码都是在小型交互式IPython会话中呈现的。对于每个代码段,IPython会立即读取、执行并输出运行结果。这种即时反馈有助于保持读者的注意力、促进学习、促进快速原型化并加速软件开发过程。
本书始终强调实时代码方法,专注于具有实时输入和输出的、完整的、能正常运行的程序。IPython的“神奇之处”在于,当读者每输入一行代码时,代码都会被实时地执行,这对学习和提高编程实验效果都有积极作用。
Python编程基础
本书全面覆盖了Python编程基础知识。
讨论了Python的编程模型,包括过程编程、函数式编程和面向对象编程。
使用最佳实践方式,强调当前的习惯用法。
全书都使用了函数式编程风格。4.17节中的表列出了Python函数式编程的大部分关键功能,以及介绍它们的章。
538个代码示例
通过538个真实例子(从单个代码段到大量的计算机科学、数据科学、人工智能和大数据案例),读者将看到富有挑战性和趣味性的关于Python的生动介绍。
读者将使用人工智能、大数据、云技术(如自然语言处理、Twitter数据挖掘、机器学习、深度学习、Hadoop、MapReduce、Spark、IBM Watson),以及关键数据科学库(NumPy、pandas、SciPy、NLTK、TextBlob、spaCy、Textatistic、Tweepy、scikit-learn、Keras)、关键可视化库(Matplotlib、Seaborn、Folium)等来完成重要任务。
避免烦琐的数学,倾向于文字解释
关注数学的概念本质,并将其用于例子中。通过使用诸如statistics、NumPy、SciPy、pandas以及其他许多库来实现这一点,这些库隐藏了数学本身的复杂性。因此,读者可以直接利用线性回归等数学技术解决问题,而无须了解其背后的数学知识。在机器学习和深度学习的例子中,我们专注于创建用于数学运算但隐藏数学细节的对象。
可视化
67个静态、动态、动画和交互式可视化数据(图表、图形、图片、动画等),可帮助读者理解概念。
聚焦于Matplotlib、Seaborn、pandas和Folium(用于交互式地图)所产生的高级可视化效果,而不包括对低级图形编程的处理。
使用可视化作为教学工具。例如,通过动态模具轧制模拟和条形图使大数定律更加生动形象。随着卷数的增加,读者将看到每个面占总卷数的百分比逐渐接近16.667%(1/6),并且代表百分比的条形的大小逐渐均衡。
可视化对于大数据中的数据探索和展示可重复的研究结果至关重要,其中数据项的数量可以是数百万、数十亿甚至更多。一个常见的说法是,一图胜千言—在大数据中,一个可视化结果相当于数据库中数十亿、数万亿甚至更多的数据项。可视化使读者能够“在4万公里的高空看数据”,即以更宏观的方式查看并了解这些数据。描述性统计对掌握数据概况有所帮助,但可能会产生误导。例如,Anscombe的四重奏通过可视化展示出:显著不同的数据集可能具有几乎相同的描述性统计结果。
展示了可视化和动画化代码,以便读者可以实现自己的代码。本书还在源代码文件和Jupyter Notebook中提供动画,因此读者可以方便地自定义代码和动画化参数,重新执行动画并查看更改的效果。
数据实验
第11~16章的数据科学入门和案例研究部分提供了丰富的数据实验。
读者将使用许多真实数据集和数据源。可以在线获得各种各样的免费开源数据集以进行相关实验。书中引用的一些网站列出了数百或数千个数据集。
读者可以将使用的许多库与热门数据集捆绑在一起,以方便进行实验。
读者将学习如何进行下列操作:数据获取和分析前的数据准备,使用多种技术分析数据,调整模型并有效地展示结果(尤其是通过可视化),等等。
GitHub
GitHub是查找开源代码以将其合并到你的项目中(以及将代码贡献给开源社区)的绝佳场所。它也是软件开发者库中的一个关键元素,其中包含版本控制工具,可帮助开发者团队管理开源(和私有)项目。
读者将使用各种免费、开源的Python库和数据科学库,以及软件和云服务的免费版、免费试用版和免费增值服务。许多库都托管在GitHub上。
云计算实践
大部分的大数据分析都发生在云端,可以轻松地动态扩展应用程序所需的硬件和软件数量。读者将使用各种基于云的服务(直接的或间接的),包括Twitter、Google Translate、IBM Watson、Microsoft Azure、OpenMapQuest、geopy、Dweet.io和PubNub。
我们鼓励读者使用免费、免费试用或免费增值云服务。我们更喜欢那些不需要使用信用卡支付的服务,因为这样不会存在意外收到大笔账单的风险。如果读者决定使用需要信用卡支付的服务,请确保免费升级的服务不会自动跳转到付费升级。
数据库、大数据和大数据基础设施
根据IBM(2016年11月)的报道,世界上90%的数据都是在过去两年中创建的。证据表明,数据创建的速度正在迅速加快。
根据AnalyticsWeek 2016年3月的文章,五年内将有超过500亿台设备连接到互联网。到2020年,我们将为地球上的每个人每秒生成1.7MB的新数据!
本书包含使用SQLite处理关系数据库和SQL的内容。
数据库是对待处理的大量数据进行存储和操作的关键大数据基础设施。关系数据库用于处理结构化数据,而不适用于大数据应用程序中的非结构化和半结构化数据。因此,随着大数据的发展,NoSQL和NewSQL数据库被创建,以有效地处理这些数据。本书包括关于NoSQL和NewSQL的概述以及使用MongoDB JSON文档数据库的实际案例研究。MongoDB是最受欢迎的NoSQL数据库。
第16章将讨论大数据硬件和软件基础设施。
人工智能案例研究
在第11~15章的案例研究中,给出了人工智能主题的内容,包括自然语言处理、通过Twitter数据挖掘做情感分析、使用IBM Watson进行认知计算、有监督机器学习、无监督机器学习和深度学习。第16章介绍了大数据硬件和软件基础设施,使计算机科学家和数据科学家能够实施基于AI的尖端解决方案。
内置类型:列表、元组、集合、字典
目前大多数应用程序开发人员都没有自己创建数据结构的必要。本书用两章篇幅对Python的内置数据结构(列表、元组、字典和集合)进行了详细介绍,使用这些数据结构可以完成大多数任务。
使用NumPy数组和pandas的Series、DataFrame进行面向数组的编程
我们还关注来自开源库的三个关键数据结构,包括NumPy数组、pandas Series和pandas DataFrame。它们被广泛用于数据科学、计算机科学、人工智能和大数据。NumPy提供的数组比内置Python列表在性能上高出两个数量级。
第7章对NumPy数组进行了详细介绍。许多库(如pandas)都是基于NumPy构建的。第7~9章中的数据科学入门部分介绍了pandas的Series和DataFrame,在其他章节中它们会与NumPy数组组合使用来解决一些问题。
文件处理和序列化
第9章介绍了文本文件处理,然后展示了如何使用流行的JSON(JavaScript Object Notation,JavaScript对象表示法)格式序列化对象。JSON在数据科学章节中会被频繁使用。
许多数据科学库提供内置的文件处理功能,用于将数据集加载到Python程序中。除了纯文本文件之外,我们还使用Python标准库的csv模块和pandas数据科学库的功能,以流行的CSV(逗号分隔数据值)格式处理文件。
基于对象的编程
我们强调使用Python开源社区已经打包到行业标准类库中的大量有价值的类。 读者将专注于了解有什么库可以使用、选择应用程序所需要的库、根据已有的类创建对象(通常使用一行或两行代码),并使它们在程序中发挥作用。基于对象的编程使读者能够快速、简洁地构建功能强大的应用程序,这是Python所具有的主要吸引力之一。
使用这种方法,读者将能够使用机器学习、深度学习和其他人工智能技术快速解决各种有趣的问题,包括认知计算挑战,如语音识别和计算机视觉。
面向对象编程
开发自定义类是一项关键的面向对象编程技能,同时还包括继承、多态性和鸭子类型。第10章将讨论这些问题。
第10章包括关于使用doctest做单元测试的讨论,以及一个有趣的洗牌和分牌模拟的问题。
第11~16章只需要定义一些简单的自定义类。在Python中,读者可能会使用更多的基于对象的编程方法,而不是完全面向对象的编程。
可重复性
在一般的科学研究,特别是数据科学研究中,需要复现实验和研究的结果,并结合这些结果进行有效的交流。Jupyter Notebook是实现这一目标的首选方法。
我们将在整本书中讨论编程技术和软件(如Jupyter Notebook和Docker)的可重复性。
性能
在几个示例中,我们使用%timeit分析工具比较不同方法执行相同任务的性能。其他性能相关的讨论包括生成器表达式、NumPy数组与Python列表、机器学习和深度学习模型的性能,以及Hadoop和Spark分布式计算性能。
大数据和并行化
在本书中,读者不必编写自己的并行化代码,而是让像Keras这样的库运行在TensorFlow上,让Hadoop和Spark这样的大数据工具自动为你进行并行化操作。在这个大数据/人工智能时代,为了满足海量数据应用程序的处理需求,需要利用多核处理器、图形处理单元(GPU)、张量处理单元(TPU)和云中的大型计算机集群提供的真正并行性。一些大数据任务可以在数千个处理器上并行处理,以便快速完成大量数据的分析
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录