Python3智能数据分析快速入门(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-28 14:58:44

点击下载

作者:李明江

出版社:机械工业出版社

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

Python3智能数据分析快速入门

Python3智能数据分析快速入门试读:

前言

为什么要写这本书

2017年7月,国务院下达了关于印发《新一代人工智能发展规划》的通知。通知明确指出要加快培养聚集人工智能高端人才,把高端人才队伍建设作为人工智能发展的重中之重。而后,2018年12月,普华永道发布了《人工智能和相关技术对中国就业的净影响》,报告预测,人工智能及相关技术在未来20年将取代中国现有约26%的工作岗位,高于对英国20%的预估,但也能通过提升生产率和实际收入水平在中国创造出大量的新的工作机会。根据普华永道估计,人工智能对中国就业的净影响可能将创造约12%的净增岗位,相当于未来20年内增加约9000万个就业岗位。那么如何才能够赶上人工智能的浪潮呢?

人工智能是一门综合了计算机科学、生理学、哲学的交叉学科。凡是使用机器替代人类实现认知、识别、分析、决策等功能,均可认为使用了人工智能技术。按照技术分支,可以将人工智能分为问题求解,知识、推理与规划,学习,通信、感知与行动四个大方向。其中学习即机器学习,与智能数据分析紧密相关。

跟国外相比,我国智能数据分析在零售、银行、保险、证券等行业中的应用并不太理想。但随着市场竞争的加剧,各行业对智能数据分析技术的意愿越来越强烈,可以预计,未来几年各行业的数据分析应用一定会从传统的统计分析发展到智能数据分析应用。在大数据时代,数据过剩、人才短缺,智能数据分析专业人才的培养又需要专业知识和职业经验积累。所以,本书在编程知识的基础之上,大篇幅地描写了智能分析常备知识,希望能为智能数据分析人才的培养提供参考。

总的来说,随着云时代的来临,智能数据分析技术将具有越来越重要的战略意义。大数据已经渗透到每一个行业和业务职能领域,逐渐成为重要的生产要素,人们对于海量数据的运用将预示着新一轮生产率增长和消费者盈余浪潮的到来。智能数据分析技术将帮助企业用户在合理时间内攫取、管理、处理、整理海量数据,为企业经营决策提供积极的帮助。智能数据分析作为数据存储和挖掘分析的前沿技术,已广泛应用于物联网、云计算、移动互联网等战略性新兴产业。虽然智能数据分析目前在国内还处于初级阶段,但是其商业价值已经显现出来,特别是有实践经验的智能数据分析人才更是成为各企业争夺的热门。为了满足日益增长的智能数据分析人才需求,很多大学开始尝试开设不同程度的智能数据分析课程。“智能数据分析”作为大数据时代的核心技术,必将成为高校数学与统计学专业的重要课程之一。本书特色

本书作者从实践出发,总结了智能数据分析常用的方法,深入浅出地介绍了智能数据分析编程过程中的相关知识。书中涵盖Python环境搭建、Python基础语法、控制语句、函数、面向对象编程、数值计算、数据处理、绘图、模型构建等内容,还配套提供了程序代码及数据。此外,每章的最后均提供课后习题,帮助读者快速掌握Python的使用方法。

为了帮助读者更好地使用本书,泰迪云课堂(https://edu.tipdm.org)提供了配套的教学视频。对于本书配套的原始数据文件、Python程序代码,均可以通过关注泰迪学社微信公众号(TipDataMining),回复“图书资源”进行获取。为方便教师授课,本书还提供了PPT课件、教学大纲、教学进度表和教案等教学资源,教师可在泰迪学社微信公众号回复“教学资源”进行获取。本书适用对象

·开设有数据分析课程的高校的教师和学生。

目前国内不少高校将数据分析引入本科教学中,在数学、计算机、自动化、电子信息、金融等专业开设了数据分析技术相关的课程,但目前这一课程使用的教学工具仍然为SPSS、SAS等传统统计工具,并没有使用Python作为教学工具。本书提供了Python语言相关的从安装到使用的一系列知识,将有效指导高校教师和学生使用Python作为数据分析的工具之一。

·数据分析开发人员。

数据分析开发人员的主要工作是将数据分析相关的算法应用于实际业务系统。本书提供了详细的机器学习与数据分析算法接口的用法与说明,能够帮助此类人员快速且有效地建立起数据分析应用的算法框架,帮助其迅速完成开发。

·进行数据分析应用研究的科研人员。

许多科研院所为了更好地对科研工作进行管理,纷纷开发了适应自身特点的科研业务管理系统,并在使用过程中积累了大量的科研信息数据。但是,这些科研业务管理系统一般没有对这些数据进行深入分析,对数据所隐藏的价值并没有充分分析利用。科研人员需要数据分析工具及有关方法论来深挖科研信息的价值,从而提高科研水平。

·关注高级数据分析的人员。

Python作为广泛应用于数据分析领域的编程语言,能为数据分析人员提供快速的、可靠的分析依据。本书提供全面的Python智能数据分析知识,能够指导这类人员快速入门数据分析,完成指定的数据分析任务。如何阅读本书

本书从逻辑上可分为两大部分。

第一部分是Python编程基础(第1~4章),介绍了Python环境搭建、Python基础语法、控制语句、函数、面向对象编程等。第1章旨在让读者从全局把握Python,了解利用Python进行智能数据分析的优势,并详细介绍了Python环境搭建与配置,同时还对两个常用集成开发环境做了详细介绍。第2章先对Python固定语法做了介绍,包括编码声明、注释、缩进等;而后介绍了Python常见的数据类型,包括str、list、tuple、dict、set等;还介绍了Python常用运算符,包括算术运算符、逻辑运算符、成员运算符、位运算符等。第3章主要对控制语句做了详细介绍,包括条件语句和循环语句,同时还介绍了和条件语句类似的异常处理try-except-else语句。第4章主要介绍了Python的内置函数、自定义函数、面向对象编程以及第三方库的安装与使用方法。

第二部分是数据分析编程(第5~9章),主要对数据分析中常用的第三方库做了详细介绍,强调在Python中对应函数的使用方法及其结果的解释说明。内容涵盖数值分析库NumPy,数据处理库pandas,绘图库Matplotlib、Seaborn、Bokeh,机器学习与数据分析建模库scikit-learn。这一部分涉及数据读取、数据预处理、模型构建、模型评价、结果可视化,几乎涵盖了整个数据分析过程,充分而又详细地说明了Python数据分析的常用操作,相信在本书的指导下,读者能够从零开始快速数据入门分析。勘误和支持

我们已经尽最大努力避免在文本和代码中出现错误,但是由于水平有限,编写时间仓促,书中难免出现一些疏漏和不足的地方。如果你有更多宝贵意见,欢迎在泰迪学社微信公众号回复“图书反馈”进行反馈。更多本系列图书的信息可以在“泰迪杯”数据挖掘挑战赛网站(http://www.tipdm.org/tj/index.jhtml)查阅。张良均2019年于广州第1章 Python概述

人工智能已成为当今世界上最受人瞩目的领域之一。各大公司纷纷在人工智能领域展开角逐,Google、Facebook、Amazon都已经在这个领域里取得了令人瞩目的成果。同时,机器学习作为人工智能的一个分支,已经在不知不觉中深入人们的生活中,如电商平台上的商品推荐和街头监控的图像识别等。由于Python第三方库中集成了诸多算法,所以本书选择Python作为机器学习语言进行介绍。1.1 Python语言介绍

Python是一门集解释性、编译性、互动性和面向对象为一体的高层次计算机程序语言,也是一门功能强大而完善的通用型语言,已有20多年的发展历史,技术成熟且稳定。相比于C++或Java,Python让开发者能够用更少的代码实现更多的想法。1.1.1 Python的发展史

荷兰人Guidovan Rossum是Python的创始人。1989年圣诞节期间,Guido决心开发一个新的脚本解释程序用来打发圣诞节的无趣。Python这个名字并不是来源于蟒蛇,而是因为Guido是一个名为Monty Python的飞行马戏团的爱好者。他希望这个新的叫作Python的语言能实现他的理念,成为一种位于C和shell之间、功能全面、易学易用、可拓展的语言。

Python从ABC语言上继承了一部分特性,如使用冒号“:”和缩进来表示程序块,而在C语言中使用{}来表示程序块,行尾没有分号,for和if结构中也没有括号()。Guido认为,ABC语言非常优美和强大,是专门为非专业程序员设计的。Guido认为ABC语言没有成功的原因在于其非开放性。于是,Guido决心在Python中避免复现这一错误,这收获了非常好的效果,Python能够完美结合C语言和其他的一些语言。

Python就这样从Guido手中诞生。1991年,第一个Python编译器(解释器)诞生。它使用C语言实现,并能够调用C库(.so)文件。1994年1月,Python 1.0版本正式发布。Python 2.0于2000年10月16日发布,增加实现完整的垃圾回收的功能,并且支持Unicode。同时,整个开发过程更加透明,社群对开发进度的影响逐渐扩大。2008年12月,Python 3.0正式发布,此时Python 3又被称为“Python 3000”或者“Py3K”,此版不完全兼容之前的Python源代码。出于兼容性的考虑,很多新特性后来也被移植到旧的Python 2.6/2.7版本上。截至2018年6月27日,Python已经更新至最新版的Python 3.7.0版本。

Python的语法很多来自C语言,但又受到ABC语言的强烈影响。Python从ABC语言中发展起来,结合了UNIX shell和C语言的习惯,最终成为一门为众多UNIX系统和Linux系统开发者所青睐的开发语言。截至2018年8月的TIOBE语言排行,Python的名次已上升至第4名,成为全球范围内仅次于Java、C语言及C++的开发语言,如图1-1所示。图1-1 TIOBE语言排行榜1.1.2 Python特性

Python语言是一门解释型、动态、强类型的面向对象编程语言。Python的解释型特性与计算机执行程序的步骤有关。由于计算机无法理解除机器语言以外的任何语言,所以必须将程序员编写的程序语言翻译成机器语言,计算机才能执行程序。按翻译的时机的不同,翻译的过程可分为编译和解释两种。在程序编写完成后进行翻译的过程称为编译,而在编写后不进行翻译在执行时才进行翻译的过程称为解释。解释型语言与编译型语言不同,解释性语言编写的程序不需要编译,节省了一道工序,在运行程序的时候才翻译。而编译型语言编写的程序在执行之前,需要一个专门的编译过程,将程序编译成为机器语言的文件。这使得Python比起其他编译型语言发布时更为便捷,但因为在执行时有一个翻译的过程,Python在执行效率上比编译型语言低一些。

动态类型语言是指在程序运行期间才去做数据类型检查的语言。在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在第一次赋值给变量时,在内部将数据类型记录下来。Python就是一种典型的动态类型语言。而静态语言与动态语言相反,静态语言的数据类型是在编译期间检查的,在编写程序时需要声明所有变量的数据类型。C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、Java等。

强类型定义语言(Explicit Type Conversion)是指一门计算机语言是否为强制数据类型定义的语言。强类型语言中的变量被指定为某个数据类型后,在被强制转换前永远是该数据类型。而弱类型语言与强类型定义语言相反,一个变量的数据类型是不确定的。Python是一门强类型的语言,Python不会对数据类型作隐式转换,而是调用方法对数据类型进行强制转换。除Python外,Java、C、C++和C#也是典型的强类型语言。1.1.3 Python应用领域

Python作为一个设计优秀的程序语言,现在已广泛应用于各种领域,依靠其强大的第三方类库,Python在各个领域都能发挥巨大的作用。1.数值计算

数值计算是数据挖掘、机器学习的基础。Python提供多种强大的扩展库用于数值计算,常用的数值计算库如表1-1所示。表1-1 常用数值计算库及其简介2.数据可视化

数据可视化是展示数据、理解数据的有效手段,常用的Python数据可视化库如表1-2所示。表1-2 Python数据可视化库3.Web开发

Web应用开发可以说是目前软件开发中最重要的部分。Python提供各种Web开发框架,帮助使用者快速实现功能开发。常用的Python网络开发类库如表1-3所示。表1-3 Python常用网络开发类库及其简介4.数据库管理

数据库是企业用于存放数据的主要工具,数据库管理包括了数据定义、数据操作、数据库运行管理、数据组织、数据库库保护、数据库维护等。Python提供了所有主流关系数据库管理接口,常用的Python MySQL连接库及其简介如表1-4所示。表1-4 MySQL连接库5.自动化运维

运维的主要内容包括保障业务长期稳定运行、保障数据安全可靠、自动化完成部署任务。Python能够满足绝大部分自动化运维的需求,目前在Linux运维中已用Python实现的应用如表1-5所示。表1-5 Python自动化运维应用及相关功能6.GUI编程

GUI(Graphical User Interface,图形用户界面)是指采用图形方式显示的计算机操作用户界面。Python提供多个图形开发界面的库用于GUI编程,常用Python GUI库如表1-6所示。表1-6 Python常用GUI库及其简介1.1.4 Python机器学习优势

Python是机器学习领域最优秀的编程语言之一,与同样支持机器学习且自带机器学习应用的MATLAB不同的是,由于Python是开源项目,所以几乎所有必要的组件都是完全免费的。当前机器学习领域的主流编程语言为Python、R、MATLAB、Java和C/C++,如表1-7所示。表1-7 主流机器学习编程语言

相比起Java与C/C++,Python代码非常容易阅读和学习,使得大多数从事机器学习和人工智能的研究(工作)人员能以最方便的方式来实现自己的想法。Python具有严格且一致的语法风格,这使得每个Python使用者都可以更好地理解其他人的Python代码,而其他语言的语法有可能会导致混淆和不一致的编程范例。

Python作为一门理想的集成语言,将各种技术绑定在一起,除了为用户提供更方便的功能之外,还是一个理想的粘合平台,在开发人员与外部库的低层次集成人员之间搭建连接,以便用C/C++实现更高效的算法。

对于研究人员者而言,使用Python编程可以快速迁移代码并进行改动,而无须花费过多的精力在修改代码与代码规范上。开发者在Python中封装了很多优秀的依赖库,其中NumPy和SciPy库提供了目前解决机器学习问题所需的标准配置。

Python目前集成了大量的机器学习框架,其中常用机器学习库如表1-8所示。表1-8 常用机器学习库

深度学习作为机器学习的分支,绽放了耀眼的光芒。由于Python的易用性与可扩展性,众多深度学习框架提供了Python接口,其中较为流行的深度学习库如表1-9所示。表1-9 流行深度学习库1.2 Python环境配置1.2.1 Python 2还是Python 3

Python 3.x引入了一些与Python 2不兼容的关键字和特性,为避免带入过多的累赘,Python 3.0在设计的时候没有考虑向下兼容,许多针对早期Python版本设计的程序都无法在Python 3.0上正常运行。为照顾现有程序,Python 2.6作为一个过渡版本,在使用Python 2.x的语法和库的同时兼顾向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。基于早期Python版本且能正常运行于Python 2.6并无警告的程序,可以通过一个2 to 3的转换工具无缝迁移到Python 3.0。Python 2.7被确认为最后一个Python 2.x版本,除支持Python 2.x语法外,还支持部分Python 3.1语法。

Python核心团队计划在2020年停止支持Python 2,目前大部分第三方库已经完成向Python 3.x的迁移工作,推荐在新的程序中使用Python 3.x版本。1.2.2 Anaconda简介

Anaconda是一个Python的集成开发环境,可以便捷地获取库,且提供对库的管理功能,同时对环境可以统一管理的发行版本。Anaconda包含Conda、Python等在内的超过180个科学库及其依赖项。其主要特点为:开源,安装过程简单,高性能使用Python和R语言,免费的社区支持等。其包含的科学库包括:Conda、NumPy、SciPy、IPython Notebook等。Anaconda支持目前主流的多种系统平台,包含Windows、MacOS和Linux(x86/Power8)。1.2.3 安装Anaconda 3

登录Anaconda官网https://www.anaconda.com/download,依据操作系统选择合适的安装包版本下载。本书使用64位Windows操作系统,故此处选择Anaconda3-5.2.0-Windows-x86_64版本,具体安装步骤如下。

1)双击打开安装包,单击“Next”按钮进入下一步,如图1-2所示。图1-2 打开安装包

2)单击“I Agree”按钮同意安装协议并进入下一步,如图1-3所示。图1-3 同意安装协议

3)若系统只有一个用户选择默认的第1个选项即可,若有多个用户且都需要用到Anaconda,则选择第2个选项。之后单击“Next”按钮,注意此处需要管理员权限才可进入下一步,如图1-4所示。图1-4 选择安装用户

4)进入安装路径设置,此处选择默认的安装路径,也可依据需要自行修改安装路径。单击图1-5所示的“Browse...”按钮,在弹出的如图1-6所示的对话框中选择安装路径。图1-5 安装路径设置

5)进入安装前的权限设置,第1个选项为将Anaconda加入环境变量,加入后可通过命令行运行Anaconda;第2个选项为默认使用Python 3.6,按用户需求进行设置,如图1-7所示。单击“Install”按钮开始安装。图1-6 安装路径对话框图1-7 权限设置

6)等待安装过程完成,会弹出是否安装Microsoft VSCode的对话框,依据用户需求选择是否安装,若不安装单击“Skip”按钮跳过即可,如图1-8所示。

7)单击“Finish”按钮完成安装过程,默认勾选的选项可以单击取消,如图1-9所示。图1-8 是否安装Microsoft VSCode的询问框图1-9 安装完成1.3 Python的解释器与IDE

Python是一门解释性语言,在运行时需要解释才能执行,此时需要解释器执行解释这项工作。集成开发环境(Integrated Development Environment,简称IDE,也称Integration Design Environment或Integration Debugging Environment)是一种辅助程序开发人员开发软件的应用软件,在开发工具内部就可以辅助编写源代码文本,并编译打包成为可用的程序,有些甚至可以设计图形接口。IDE包括编程语言编辑器、自动构建工具,通常还包括调试器。有些IDE包含编译器/解释器,虽然目前有一些IDE支持多种编程语言,但是一般的IDE主要还是针对特定的编程语言而量身打造。1.3.1 Python的解释器

Python的第1个解释器CPython在1991年诞生,使用C语言实现,并且能够调用C库。发展至今,除源生解释器CPython外,还发展出了形形色色的解释器,其中部分为基于CPython的改进,也有完全基于其他语言编译的版本,目前主流的Python解释器如表1-10所示。表1-10 Python解释器1.3.2 Python各IDE比较

选择合适的IDE能有效帮助开发者提高编程效率。IDE大致上可分为下述两类。免费的IDE,此类IDE通常能支持多平台且提供一些基本功能。为更高级的面向企业和专业开发人员的商业IDE,其功能比免费IDE更为完善和强大,同时也提供免费的社区版,社区版除部分收费功能以外与商业版一致。常用的Python IDE如下。1.IDLE

IDLE是开发Python程序的基本IDE,具备基本IDE的功能,是非商业Python开发的不错选择,是Python创造者Guido van Rossum使用python and Tkinter创建的一个集成开发环境。使用IDLE必须安装python and Tkinter,其特性包含:自动缩进、彩色编码、命令历史(Alt+p,Alt+n)和单词自动(Alt+/)完成。IDLE的界面如图1-10所示。图1-10 IDLE界面2.PyCharm

PyCharm是专业的Python集成开发环境,有社区版和商业版两个版本。PyCharm拥有最多的企业用户,如Twitter、Groupon、Spotify、eBay和Telefonica等。

PyCharm的大部分功能在社区版本中都是可用的,包括智能代码补全、直观的项目导航、错误检查和修复、遵循PEP8规范的代码质量检查、智能重构以及图形化的调试器和运行器。还能与IPython Notebook进行集成,并支持Anaconda及其他的科学计算库,比如Matplotlib和NumPy。PyCharm专业版本支持更多高级的功能,如远程开发功能、数据库支持及对Web开发框架的支持等。

PyCharm支持很多的第三方Web开发框架,如Django、Pyramid、web2py、Google App Engine和Flask,这些也使得PyCharm成为一个完整的快速应用集成开发环境。PyCharm的主界面如图1-11所示。图1-11 PyCharm主界面3.Eclipse+PyDev

Eclipse是一个开放源代码的、基于Java的可扩展开发平台。其本身是一个框架和一组服务,用于通过插件组件构建开发环境。在Eclipse中,Python应用程序的开发和调试主要通过PyDev插件来实现。PyDev插件的出现方便了众多Python开发人员,该插件提供一些很好的功能,如:语法错误提示、源代码编辑助手、Quick Outline、Globals Browser、Hierarchy View、运行和调试等。使用PyDev插件Eclipse的界面如图1-12所示。图1-12 使用PyDev插件的Eclipse界面4.Rodeo

Rodeo是一个专门用于Python实现数据科学的IDE,被认为是IPython Notebook的一个轻量级替换。Rodeo采用yhat开发,基于IPython内核,支持自动代码补全、结果数据分析。它运行于浏览器中,带有键盘快捷键,其交互性让用户感觉更像是一个本地应用。Rodeo使用IPython内核来处理UI和Python环境之间的通信,编辑器使用的是Ace。

其主要功能包含:执行脚本、运行分析、自动完成、检查数据、可见的绘图、文档和帮助。Rodeo的主界面如图1-13所示。图1-13 Rodeo主界面5.Jupyter Notebook

Jupyter Notebook以网页的形式打开,可在网页页面中直接编写代码和运行代码,代码的运行结果将会直接在代码块下显示。Jupyter Notebook以文档的形式体现所有交互计算、编写说明文档、数学公式、图片,以及其他富媒体形式的输入和输出,这部分文档将保存为后缀名为.ipynb的JSON格式文件,方便与他人共享和进行版本控制。

Jupyter Notebook的主要特点如下:

1)可直接通过浏览器运行代码,同时在代码块下方展示运行结果。

2)编程时具有语法高亮、缩进、Tab补全的功能。

3)对代码编写说明文档或语句时,支持Markdown语法。

4)以富媒体格式展示计算结果,富媒体格式包括:HTML、LaTeX、PNG、SVG等。

5)支持使用LaTeX编写数学性说明。

Jupyter Notebook的代码界面如图1-14所示。图1-14 Jupyter Notebook代码界面6.Spyder

Spyder是一个开源的Python集成开发环境,非常适合用来进行科学计算方面的Python开发,是一个轻量级的软件,遵循MIT协议,可免费使用。

Spyder的基本功能包括多语言编辑器、交互式控制台、文件查看、variable explorer、文件查找、文件管理等。支持多种系统平台,可运行于Windows、Mac或者Linux系统之上。也可以作为PyQT的扩展库,嵌入PyQT的应用中。Spyder的主界面如图1-15所示。1.3.3 PyCharm的安装与使用1.安装PyCharm

登录PyCharm官网http://www.jetbrains.com/pycharm/download下载安装包,官网提供两种版本的安装包,其中professional表示专业版,community为社区版,本书使用的社区版版本为pycharm-community-2018.2.2。具体安装步骤如下。图1-15 Spyder主界面

1)双击打开安装包,单击“Next”按钮进入下一步,如图1-16所示。

2)进入安装路径设置,此处选择默认的安装路径,也可依据需要自行修改安装路径。单击如图1-17所示的“Browse...”按钮,在弹出的如图1-18所示的对话框中选择安装路径。图1-16 打开安装包图1-17 选择安装路径

3)依据系统版本勾选对应的版本,此处选择64位的版本,如图1-19所示。图1-18 安装路径对话框

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载