Python是信息管理与信息系统、电子商务等信息管理类本科学生进行数据分析所需要掌握的基础性语言和分析工具,是未来学生掌握大数据分析技术的学习基础。本书共分12章,着重讲述Python语言和数据分析工具包的应用。
第1章主要介绍Python的发展历史、特点、集成开发环境、内置模块、帮助的使用等内容; 第2章主要介绍Python语言的基础知识; 第3章主要介绍Python中的常用数据结构,包括序列、字典、集合等,以及函数的定义和调用等; 第4章主要介绍Python中类、对象和方法的相关内容; 第5章主要介绍Python进行数据分析常用的NumPy、Pandas、Matplotlib、SciPy和Scikitlearn等基础库内容; 第6章主要介绍网络数据获取的HTML和XML两种网页组织形式,以及urllib和BeautifulSoup4两个模块内容; 第7章主要介绍文件的操作; 第8章主要介绍数据可视化,以及使用Python绘制图表的知识; 第9章主要介绍利用Python进行数据库应用开发; 第10、11章主要介绍Python机器学习的基本概念以及有监督、无监督学习算法的原理; 第12章主要介绍Python在地理空间分析上的应用。本书中的代码均在Python 3.5中测试通过。
本书一方面侧重对Python数据分析基础知识的讲解,另一方面注重Python数据处理方法的应用。本书适合作为计算机科学与技术专业学生学习数据分析的入门教材,也适合作为Python爱好者的参考书。
本书一方面侧重Python数据分析基础知识的讲解,另一方面侧重利用Python数据处理方法的应用。本书适合可作为计算机程序设计的入门教材或Python爱好者的参考书。
前言
Python是大数据时代非常受欢迎的数据分析编程语言,近年来随着机器学习、云计算、人工智能等技术的发展,Python的流行趋势扶摇直上,已经成为数据分析和数据科学事实上的标准语言和标准平台之一。
本书针对数据分析人员和Python编程学习者进行内容编排和章节讲述,Python数据分析整个学习路线图计划分成16周,120天左右。本书主要内容包括以下五大部分。
(1) Python工作环境及基础语法知识: 认识Python程序运行方式,使用Python 3.5开发集成环境与工具; 学习Python程序基本结构,理解Python的面向对象定义和类、对象的操作方法,以及Python异常处理机制。本部分为基础内容,建议学习时间为4周。
(2) Python数据分析相关知识: Python生态系统为数据分析师和数据科学家提供了各种程序库,例如NumPy、SciPy、Pandas和Matplotlib,使其在数据分析领域也有广泛的应用。Python数据分析的学习主要是对相关库的使用,例如数据整理需要用到NumPy库,数据描述与分析则主要用到Pandas库。由于有前面的学习基础,本部分学习时间建议为3周。
(3) Python数据可视化: Python数据可视化的过程就是学习Matplotlib库的过程,Matplotlib库包含丰富的数据可视化资源,地图、3D等都有涉及,基于前面两部分的学习经验,这部分内容在两周内基本可以完成。
(4) Python机器学习: Scikitlearn是本书所使用的核心程序库,依托于上述几种工具包,封装了大量的经典以及最新的机器学习模型。通过介绍有监督和无监督机器学习原理,学习有监督学习的线性回归、Logistic回归、朴素贝叶斯、SVM、KNN和决策树等几个常用算法,以及无监督学习的KMeans聚类算法。在前面三部分学习的基础上,本部分内容建议学习时间在4周左右。
(5) Python地理空间数据分析应用: 向读者介绍地理空间分析的基本概念和常用的地理空间数据,然后介绍Python中与地理数据处理和地理分析相关的工具,最后以Python处理和分析矢量数据与栅格数据的方法,对浙江省实施的五水共治行动中劣五类水体在地理空间模型上分布的卫星图像数据进行可视化数据分析的综合应用,本部分内容建议学习时间为3周。
本书编写人员具有丰富的Python数据分析实践经验和多年的信息管理教学能力,第1~3章由沈阳工业大学李艺老师编写; 第4~7、10章由杭州电子科技大学柳毅老师编写; 第8、9、11、12章由杭州电子科技大学毛峰老师编写; 王健、陆佳涣等硕士研究生参与了本书相关章节内容和程序代码的完善工作; 浙江工业大学计算机科学与技术学院院长、国家教学名师王万良教授对本书进行了认真的审阅,并提出许多宝贵的建设性意见,使本书内容日臻完善,在此对他们所付出的辛勤劳动表示诚挚的感谢。
本书结合大数据管理与应用的最新发展,针对计算机科学与技术、信息管理与信息系统、电子商务等经管类本科教学特点进行撰写。本书提供教学课件、教学大纲、电子教案、习题答案和程序源码,读者可以扫描封底的课件二维码下载。本书还提供400分钟的视频讲解,扫描书中的二维码,可以在线观看。
由于编者水平所限,书中难免有疏漏之处,敬请读者批评指正。
编者2019年3月
目录
第1章Python简介
1.1Python语言的发展史
1.1.1Python语言的特点
1.1.2Python 2与Python 3的区别
1.2Python的环境搭建
1.3开始使用Python IDLE
1.3.1交互方式
1.3.2Python的集成开发环境
1.4Eclipse PyDev的安装
1.5代码风格
1.6使用帮助
本章小结
习题
第2章Python语言基础知识
2.1标识符与变量
2.1.1标识符
2.1.2变量
2.2数据类型及运算
2.2.1数据类型
2.2.2运算符和表达式
2.3分支结构控制语句
2.3.1if语句
2.3.2ifelse语句
2.3.3ifelifelse语句
2.4循环语句
2.4.1循环结构控制语句
2.4.2循环嵌套控制语句
2.4.3break语句和continue语句
2.4.4range()函数
2.5常见的Python函数
本章小结
习题
第3章数据结构与函数设计
3.1序列
3.1.1列表
3.1.2元组
3.1.3字符串
3.1.4列表与元组之间的转换
3.2字典
3.2.1创建字典
3.2.2字典的方法
3.2.3列表、元组与字典之间的转换
3.3集合
3.3.1集合的创建
3.3.2集合的运算
3.3.3集合的方法
3.4函数的定义
3.4.1函数的调用
3.4.2形参与实参
3.4.3函数的返回
3.4.4位置参数
3.4.5默认参数与关键字参数
3.4.6可变长度参数
本章小结
习题
第4章类与对象
4.1面向对象
4.1.1面向对象编程
4.1.2类的抽象与封装
4.2认识Python中的类、对象和方法
4.2.1类的定义与创建
4.2.2构造函数
4.3类的属性
4.3.1类属性和实例属性
4.3.2公有属性和私有属性
4.4类的方法
4.4.1类方法的调用
4.4.2类方法的分类
4.4.3析构函数
4.5类的继承
4.5.1父类与子类
4.5.2继承的语法
4.5.3多重继承
4.5.4运算符的重载
4.6类的组合
4.7类的异常处理
4.7.1异常
4.7.2Python中的异常类
4.7.3捕获与处理异常
4.7.4自定义异常类
4.7.5with语句
4.7.6断言
本章小结
习题
案例
第5章Python数据分析基础库
5.1NumPy
5.1.1ndarray的数据类型
5.1.2数组和标量之间的运算
5.1.3索引和切片
5.1.4数组转置和轴对换
5.1.5利用数组进行数据处理
5.1.6数学和统计方法
5.2Pandas
5.2.1Pandas数据结构
5.2.2Pandas文件操作
5.2.3数据处理
5.2.4层次化索引
5.2.5分级顺序
5.2.6使用DataFrame的列
5.3Matplotlib
5.3.1figure和subplot
5.3.2调整subplot周围的间距
5.3.3颜色、标记和线型
5.3.4刻度标签和图例
5.3.5添加图例
5.3.6将图表保存到文件
5.4SciPy
5.5Scikitlearn
本章小结
习题
第6章网络数据的获取
6.1网页数据的组织形式
6.1.1HTML
6.1.2HTML元素
6.1.3HTML属性
6.2XML
6.2.1XML的结构和语法
6.2.2XML元素和属性
6.3利用urllib处理HTTP
6.4利用BeautifulSoup4解析HTML文档
6.4.1BeautifulSoup4中的对象
6.4.2遍历文档树
6.4.3搜索文档树
本章小结
习题
第7章文件操作
7.1文件的打开和关闭
7.1.1打开文件
7.1.2关闭文件
7.2读写文件
7.2.1从文件读取数据
7.2.2向文件写入数据
7.3文件对话框
7.3.1基于win32ui构建文件对话框
7.3.2基于tkFileDialog构建文件对话框
7.4应用实例: 文本文件的操作
本章小结
习题
第8章Python数据可视化
8.1数据可视化概念框架
8.1.1数据可视化简介
8.1.2数据可视化常用图表
8.1.3Python数据可视化环境准备
8.2绘制图表
8.2.1Matplotlib API入门
8.2.2创建图表
8.2.3图表定制
8.2.4保存图表
8.3更多高级图表及定制
8.3.1样式
8.3.2subplot子区
8.3.3图表颜色和填充
8.3.4动画
本章小结
习题
第9章数据库应用开发
9.1Python与数据库
9.1.1数据库简介
9.1.2Python数据库工作环境
9.2本地数据库SQLite
9.2.1SQLite简介
9.2.2Python内置的sqlite3模块
9.3关系型数据库
9.3.1关系型数据库基本操作与SQL
9.3.2操作MySQL
9.4非关系型数据库
9.4.1NoSQL介绍
9.4.2MongoDB
9.4.3PyMongo: MongoDB和Python
习题
第10章机器学习有监督学习
10.1机器学习简介
10.2Python机器学习库Scikitlearn
10.3有监督学习
10.3.1线性回归
10.3.2Logistic回归分类器
10.3.3朴素贝叶斯分类器
10.3.4支持向量机
10.3.5KNN算法
10.3.6决策树
本章小结
习题
第11章机器学习无监督学习
11.1无监督学习
11.2聚类
11.2.1相异度
11.2.2KMeans算法
11.2.3DBSCAN算法
11.3关联规则
11.3.1关联分析
11.3.2Apriori算法
11.3.3FPgrowth算法
本章小结
习题
第12章Python地理空间分析
12.1地理空间分析简介
12.1.1地理空间分析的基本概念
12.1.2地理空间分析与Python
12.2地理空间数据
12.2.1数据格式概览
12.2.2数据特征
12.2.3矢量数据
12.2.4栅格数据
12.3Python地理空间分析工具
12.3.1GeoJSON
12.3.2GDAL和OGR
12.3.3PyShp
12.3.4PIL
12.3.5GeoPandas
12.4Python分析矢量数据
12.4.1访问矢量数据
12.4.2Shapefile文件操作
12.4.3空间查询
12.4.4叠加分析
12.5Python与遥感
12.5.1访问影像文件
12.5.2影像裁剪
12.5.3重采样
12.5.4影像分类
12.6五水共治资源地理空间分析综合应用
本章小结
习题