1、 高级大数据人才培养丛书 Python 程序设计 丛书主编丛书主编:刘 鹏 张 燕 主主 编编:张雪萍 副副 主主 编编:唐万梅 景雪琴 内 容 简 介 本书是中国信息协会大数据分会副会长刘鹏教授组织编撰的“高级大数据人才培养丛书”之一。本书是一本全面的、从入门到实践的 Python 编程教程,从带领读者快速掌握基本的 Python 编程知识开始,循序渐进、层层深入地引导读者利用新学到的知识开发功能丰富的项目。本书首先介绍了 Python 基础;接着介绍了数据类型、文件、程序调试、面向对象程序设计、连接数据源等基本知识;然后结合网络爬虫、数据挖掘、自然语言处理、数据可视化、Web 和移动应用等
2、工具,以案例为依托进行项目实战;最后介绍了国内各种云服务平台,以及如何运用 Python 实现访问。本书的全部实验均可在大数据实验平台(http:/)上远程开展,也可在高校部署的 BDRack 大数据实验一体机上本地开展。本书系统全面、通俗易懂、结构合理,每章均有习题,可作为高等院校计算机及相关专业的本科和研究生教材,部分内容也可作为高职高专院校的教学内容。本书也适合作为编程人员的自学书籍。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 Python 程序设计张雪萍主编北京:电子工业出版社,2019.4(高级大数据人才培养丛书刘鹏,张燕主
3、编)ISBN 978-7-121-36073-2.P.张.软件工具程序设计 .TP311.561 中国版本图书馆 CIP 数据核字(2019)第 035760 号 策划编辑:董亚峰 责任编辑:米俊萍 特约编辑:顾慧芳 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编:100036 开 本:7871092 1/16 印张:25 字数:600 千字 版 次:2019 年 4 月第 1 版 印 次:2019 年 4 月第 1 次印刷 定 价:88.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010
4、)88254888,88258888。质量投诉请发邮件至,盗版侵权举报请发邮件至。本书咨询联系方式:。总 序 短短几年间,大数据就以一日千里的发展速度,快速实现了从概念到落地,直接带动了相关产业井喷式发展。全球多家研究机构统计数据显示,大数据产业将迎来发展黄金期:IDC 预计,大数据和分析市场将从 2016 年的 1300 亿美元增长到 2020 年的 2030亿美元以上;中国报告大厅发布的大数据行业报告数据也说明,自 2017 年起,我国大数据产业迎来发展黄金期,未来 23 年的市场规模增长率将保持在 35%左右。数据采集、数据存储、数据挖掘、数据分析等大数据技术在越来越多的行业中得到应用,
5、随之而来的就是大数据人才问题的凸显。麦肯锡预测,每年数据科学专业的应届毕业生将增加 7%,然而仅高质量项目对于专业数据科学家的需求每年就会增加 12%,完全供不应求。根据人民日报的报道,未来 35 年,中国需要 180 万数据人才,但目前只有约 30 万人,人才缺口近 150 万人。以贵州大学为例,其首届大数据专业研究生就业率就达到 100%,可以说被“一抢而空”。急切的人才需求直接催热了大数据专业,教育部正式设立“数据科学与大数据技术”本科专业。目前已经有三批共计 283 所大学获批,包括北京大学、中南大学、对外经济贸易大学、中国人民大学、北京邮电大学、复旦大学等。不过,就目前而言,在大数据
6、人才培养和大数据课程建设方面,大部分高校仍然处于起步阶段,需要探索的问题还有很多。首先,大数据是个新生事物,懂大数据的老师少之又少,院校缺“人”;其次,尚未形成完善的大数据人才培养和课程体系,院校缺“机制”;再次,开展大数据实验需要为每位学生提供集群计算机,院校缺“机器”;最后,院校没有海量数据,开展大数据教学科研工作缺少“原材料”。其实,早在网格计算和云计算兴起时,我国科技工作者就曾遇到过类似的挑战,我有幸参与了这些问题的解决过程。为了解决网格计算问题,我在清华大学读博期间,于2001 年创办了中国网格信息中转站网站,每天花几个小时收集和分享有价值的资料给学术界,此后我也多次筹办和主持全国性
7、的网格计算学术会议,进行信息传递与知识分享。2002 年,我与其他专家合作完成的网格计算教材也正式面世。2008 年,当云计算开始萌芽之时,我创办了中国云计算网站()(在各大搜索引擎“云计算”关键词搜索结果中排名前列),2010 年出版了云计算(第 1 版)、2011 年出版了云计算(第 2 版)、2015 年出版了云计算(第 3 版),每一版都花费了大量成本制作并免费分享对应的几十个教学 PPT。目前,这些 PPT 的下载总量达到了几百万次。同时,云计算一书也成为国内高校的首选教材。在 CNKI 公布的高被引图书 Python 程序设计 IV 名单中,云计算(第 1 版)在自动化和计算机领域
8、排名全国第一(统计了 2010 年后出版的所有图书)。除了资料分享,2010 年我也在南京组织了全国高校云计算师资培训班,培养了国内第一批云计算老师,并通过与华为、中兴、360 等知名企业合作,输出云计算技术,培养云计算研发人才。这些工作获得了大家的认可与好评,此后我接连担任了工信部云计算研究中心专家、中国云计算专家委员会云存储组组长等职务。近几年,面对日益突出的大数据发展难题,我也在尝试使用此前类似的办法去应对这些挑战。为了解决大数据技术资料缺乏和交流不够通透的问题,我于 2013 年创办了中国大数据网站(),投入大量的人力进行日常维护;为了解决大数据师资匮乏的问题,我面向全国院校陆续举办多
9、期大数据师资培训班。从 2016 年年底起,我在南京多次举办全国高校/高职/中职大数据免费培训班,基于大数据 大数据实验手册及云创大数据提供的大数据实验平台,帮助到场老师们跑通了 Hadoop、Spark 等多个大数据实验,使他们跨过了“从理论到实践,从知道到用过”的门槛。2017 年 5 月,我还举办了全国千所高校大数据师资免费讲习班,盛况空前。其中,为了解决大数据实验难的问题而开发的大数据实验平台,正在为越来越多高校的教学科研带去方便:我带领云创大数据(,股票代码:835305)的科研人员,应用 Docker 容器技术,成功开发了 BDRack 大数据实验一体机,打破了虚拟化技术的性能瓶颈
10、,可以为每位参加实验的人员虚拟出 Hadoop 集群、Spark 集群、Storm 集群等,自带实验所需数据,并准备了详细的实验手册(包含 42 个大数据实验)、PPT 和实验过程视频,可以开展大数据管理、大数据挖掘等各类实验,并可以进行精确营销、信用分析等多种实战演练。目前,大数据实验平台已经在郑州大学、成都理工大学、金陵科技学院、天津农学院、西京学院、郑州升达经贸管理学院、信阳师范学院、镇江高等职业技术学校等多所院校成功应用,并广受校方好评。该平台也可在线使用(http:/),帮助师生通过自学,用一个月左右成为大数据实验动手的高手。此外,面对席卷而来的人工智能浪潮,我所在团队推出的 AIR
11、ack 人工智能实验平台、DeepRack深度学习一体机及 dServer 人工智能服务器等系列应用,一举解决了人工智能实验环境搭建困难、缺乏实验指导与实验数据等问题,目前已经在清华大学、南京大学、南京农业大学、西安科技大学等高校投入使用。同时,为了解决缺乏权威大数据教材的问题,我所负责的南京大数据研究院,联合金陵科技学院、河南大学、云创大数据、中国地震局等多家单位,历时两年,编著出版了适合本科教学的大数据 大数据库 大数据实验手册 数据挖掘 大数据可视化 深度学习等教材。在大数据教学中,本科院校的实践教学应更具系统性,偏向新技术的应用,且对工程实践能力要求更高;而高职高专院校则更偏向于技术性
12、和技能训练,理论以够用为主,学生将主要从事数据清洗和运维方面的工作。基于此,我还联合多家高职院校专家准备了云计算导论 大数据导论 数据挖掘基础 R 语言 数据清洗 大数据系统运维 大数据实践系列教材。此外,这些图书的配套 PPT 和其他资料也继续在中国大数据()和中国总序 V 云计算()等网站免费提供。同时,大数据实验平台(http:/)、免费的物联网大数据托管平台万物云()和环境大数据免费分享平台环境云()将持续开放,使资源与数据随手可得,让大数据学习变得更加轻松。在此,特别感谢我的硕士生导师谢希仁教授和博士导师李三立院士。谢希仁教授所著的计算机网络已经更新到第 7 版,与时俱进且日臻完善,
13、时时提醒学生要以这样的标准来写书。李三立院士是留苏博士,为我国计算机事业做出了杰出贡献,曾任国家攀登计划项目首席科学家。他严谨治学,带出了一大批杰出的学生。本丛书是集体智慧的结晶,在此谨向付出辛勤劳动的各位作者致敬!书中难免会有不当之处,请读者不吝赐教。我的邮箱:,微信公众号:刘鹏看未来(lpoutlook)。刘 鹏 于南京大数据研究院 Python 程序设计 VI 前 言 随着机器学习的兴起和数据科学的应用发展,Python 逐步成了最受欢迎的语言之一。它简单易用、逻辑明确并拥有海量的扩展包,因此不仅成为机器学习与数据科学的首选语言,同时在网页、数据爬取和科学研究等方面也成为不二选择。Pyt
14、hon 程序设计是中国信息协会大数据分会副会长刘鹏教授组织编撰的“高级大数据人才培养丛书”之一。一是考虑程序设计要注重实际应用开发,二是由于所在丛书中数据挖掘 大数据 云计算等对关联规则、神经网络、推荐系统、云计算算法有详细的介绍,故本书没有再介绍有关这几部分的理论及技术。另外,本书的全部实验均可在大数据实验平台(http:/)上远程开展,也可在高校部署的 BDRack 大数据实验一体机上本地开展。全书分为 12 章,其主要内容如下:第 1 章“Python 基础”。主要介绍 Python 的特点,Python 的安装与运行、程序控制等。第 2 章“数据类型”。学习 Python 提供的基本数
15、据类型:整型、浮点型、列表、元组、字典、字符串等。第 3 章“文件”。学习如何使用 Python 程序对文件进行操作,主要包括如何读写文件、如何处理 Word 文件、如何处理.pdf 文件及压缩文件等。第 4 章“程序调试”。主要学习程序运行时发生错误或异常的各种处理方法,以及修复程序 bug 的各种调试手段等。第 5 章“面向对象程序设计”。结合 Python 学习面向对象程序设计,主要包括面向对象程序技术的基本概念、类的定义和对象、类属性、类的方法、类的继承性与多态性等。第 6 章“连接数据源”。主要学习如何基于 Python 第三方库 pandas 处理 CSV 数据源、Excel 数据
16、源、JSON 数据源,以及数据库的操作。第 7 章“网络爬虫”。主要学习如何使用 Python 网络爬虫为特定用户准备数据资源,并以热门电影搜索、大数据相关论文文章标题采集、全国空气质量数据爬取为案例进行爬虫项目实战。第 8 章“数据挖掘”。学习如何用 Python 数据分析工具进行数据挖掘,主要包括数 Python 程序设计 VIII 据预处理、分类与预测、聚类分析,并以信用评估、影片推荐系统等进行数据挖掘项目实战。第 9 章“自然语言处理”。学习 Python 在自然语言处理方面的应用,主要包括如何应用 NLTK、jieba 完成分词、词性标注、命名实体识别及语法分析等,并以搜索引擎为例进行自然语言处理项目实战。第 10 章“数据可视化”。学习如何使用 Python 图形库进行绘图操作,实现数据的可视化,主要包括 Pillow、Matplotlib、Echarts 的使用等。第 11 章“Web 和移动应用”。结合案例学习如何基于 Django 进行 Python Web 开发,以及如何基于 Python Kivy 开发 Python 移动应用。第 12 章“与云结合”。主要介绍国