Python数据分析四剑客:IPython、Numpy、pandas、Matplotlib

Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。

一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用Python便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。

Python被大量应用在数据挖掘和机器学习领域,其中使用极其广泛的是IPython、Numpy、pandas、Matplotlib等库。对于希望使用Python来完成数据分析工作的人来说,学习IPython、Numpy、pandas、Matplotlib这个组合是目前看来不错的方向。

IPython

(图源:ipython.org)

IPython是Python的加强型交互式解释器。

IPython是使用Python进行数据分析、处理、呈现的重要选择之一。它是一个与Python科学计算包(主要包括Numpy、pandas、Matplotlib等)紧密联系的交互式开发环境,它同时也是Python科学计算包的一部分。

主要特点包括:

提供给用户一个强大的交互界面。

Jupter Notebook的内核。

高效的交互式处理、呈现数据(特别是与Matplotlib一起使用)。

适合并行处理计算。

IPython加上一个文本编辑器是科学计算者使用Python进行数据分析、处理、呈现的最佳选择之一。

IPython主要包括:

一个强大的、交互式的Python壳

Jupyter内核,支持用户在Jupyter Notebook以及其他终端与IPython的交互

IPyton壳

2017年最新发布的IPython壳以及内核具有以下这些重要的特性:

全面的对象检查。

记录输入历史。

缓存输出结果。

扩展的代码补全功能,可以补全变量、关键字、文件名、函数名等。

对系统“魔法”方法的扩展,可以处理与操作系统相关的任务。

丰富的配置系统支持不同状态的切换。

历史信息登录与重载。

支持不同语法。

轻松嵌入到其他Python程序中。

对pdb调试器和Python测试工具的集成。

Numpy

(图源:numpy.org)

Numpy是Python科学计算库的基础。

主要包括:

强大的N维数组对象和向量运算

一些复杂的功能

与C/C++和Fortran代码的集成

实用的线形代数运算、傅立叶变换、随机数生产等

Numpy提供了一个简洁的C语言接口,可以非常方便地使用C语言编写的代码操作Numpy数组对象,反过来使用C语言生成的数组也可以轻松的转化成Numpy数组对象;这一特性使得Python轻松地与其他编程语言C/C++粘结在一起。Numpy除了用作科学计算,也可以用作多维度普通数据的容器;并且可以定义任何类型的数据,使得Numpy高效、无缝地与各种类型的数据分析库连接起来。

Numpy的主要对象是一个多维度的、均匀的多维数组。Numpy提供了各种函数方法可以非常方便灵活的操作数组,熟练掌握数组的基本概念是使用数组这种数据结构的基本要求。

pandas

pandas是建立在Numpy基础上的高效数据分析处理库,是Python的重要数据分析库。

pandas提供了众多的高级函数,极大地简化了数据处理的流程,尤其是被广泛地应用于金融领域的数据分析。

pandas主要包括:

带有标签的数据结构,主要包括序列(Series)和数据框(DataFrame)等。

允许简单索引和多级索引。

整合了对数据集的集合和转换功能。

生成特定类型的数据。

支持从Excel、CSV等文本格式中文导入数据,以Pytables/HDF5格式高效地读/写数据。

能够高效地处理带有默认值的数据集。

能够直接进行常规的统计回归分析。

Matplotlib

(图源:matplotlib.org)

Matplotlib是一个主要用于绘制二维图形的Python库。

数据可视化是数据分析的重要环节,借助图形能够帮助更加直观地表达出数据背后的”东西”。

Matplolib最初主要模仿Matlab的画图命令,但是它是独立于Matlab的,可以自由、免费使用的绘图包。Matplotlib依赖于之前介绍的Numpy库来提供出色的绘图能力。Matplotlib项目是John Hunter在2002年发起的,目标是建立一个具备以下特点的Python绘图工具包:

能够绘制出高质量的图形,并且图形里面的镶嵌的文本必需足够美观。

能够和Tex文档一起输出。

能够嵌入到GUI(图形用户界面)应用程序中。

代码足够简洁并且可扩展性强。

绘图命令足够方便。

经过社区多年以来的努力,Matplotlib已经具备了上面列出的所有特点。现在Matplotlib被广泛地应用于各种生产、科学研究等环境中,比如在网络服务中动态生成图形、在IPython壳下交互使用Matplotlib绘图等。

Matplotlib从概念上可以分为三层:

matplotlib.pylab,这一层给主要给用户提供一些简单的命令来生成图形,语法风格和Matlab非常接近。Matplotlib的API,这一层主要给用户提供了直接创建图形、线条、文本等的功能。这是一个抽象层,它并不关心图形的输出。最后一层是后端,主要是管理图形的输出等其他一些功能。

如果你已经决定学习Python数据分析,但是之前没有编程经验,那《Python数据分析从入门到精通》你绝不能错过。Python数据分析“四剑客”在本书上会进行详细深入的介绍。

本书详细地介绍了IPython、Numpy、pandas、Matplotlib库的组成与使用,为科学计算相关人员提供了有用的参考资料。采取循序渐进的写作风格,对于工具的安装、使用步骤、方法技巧逐步展开,加以图解和应用场景,即使完全不懂Python和数据分析的人员,也可以流畅地读完本书。

无论哪种语言,编程的方法、模式、数据结构、算法都是相通的。本书将科学计算、数据结构与各种工具和方法完美结合,让非Python读者也能融会贯通,让学习统计的人能找到更适合的统计方法和数据分析处理方法。

本书最后的两个实战案例适合数据分析入门者,案例的步骤详细、分析到位,能为读者入手真实项目打下良好的基础。

进入小程序参与抽奖,3月22日自动开奖。

本书目录结构

第1篇 Python数据分析语法入门

第1章 初识Python 1

1.1 Python是什么 2

1.2 Python有什么优点 3

1.3 其他程序设计语言中的Python 5

1.4 快速搭建Python开发环境 7

1.5 第一个Python程序 22

第2章 Python起步必备 27

2.1 Python代码的组织形式和注释方式 27

2.2 Python的基本输入/输出函数 31

2.3 Python对中文的支持 33

2.4 简单实用的Python计算器 37

第3章 Python的数据类型与流程控制语句 41

3.1 Python数据类型:数字 42

3.2 Python数据类型:字符串 45

3.3 Python数据类型:列表和元组 52

3.4 Python数据类型:字典 54

3.5 Python数据类型:文件 55

3.6 Python数据类型:布尔值 56

3.7 Python的流程控制语句 56

第4章 可复用的函数与模块 64

4.1 Python自定义函数 65

4.2 参数让函数更有价值 67

4.3 变量的作用域 71

4.4 最简单的函数:使用lambda表达式定义函数 72

4.5 可重用结构:Python模块 73

4.6 用包来管理多个模块 80

第5章 数据结构与算法 82

5.1 表、栈和队列 82

5.2 树和图 88

5.3 查找与排序 95

第6章 面向对象的Python 101

6.1 面向对象编程概述 101

6.2 在Python中定义和使用类 103

6.3 类的属性和方法 106

6.4 类的继承 111

6.5 在类中重载方法和运算符 114

6.6 在模块中定义类 117

第7章 异常处理与程序调试 120

7.1 异常的处理 120

7.2 用代码引发异常 125

7.3 使用pdb模块调试Python脚本 128

7.4 在PythonWin中调试脚本 134

第8章 pip软件包管理 137

8.1 安装pip 137

8.2 更新pip 138

8.3 pip常用操作 138

8.4 本章小结 141

第2篇 Python数据分析工具入门

第9章 IPython科学计算库 142

9.1 IPython简介 143

9.2 安装IPython及其他相关库 144

9.3 IPython壳基础 146

9.4 融合Matplotlib库和Pylab模型 156

9.5 输入和输出变量 157

9.6 交互式调试器 158

9.7 计时功能 159

9.8 重新载入模块 160

9.9 配置IPython 161

9.10 Jupyter 162

9.11 IPython和Jupyter Notebook的关系 170

第10章 Numpy科学计算库 174

10.1 Numpy基础 174

10.2 数组的基本操作 184

10.3 基本的分片和索引操作 186

10.4 高级索引 189

10.5 改变数组的形状 193

10.6 组装、分割数组 195

10.7 数组的基本函数 196

10.8 复制和指代 198

10.9 线性代数 199

10.10 使用数组来处理数据 201

10.11 Numpy的where()函数和统计函数 203

10.12 输入与输出 206

10.13 生成随机数 208

10.14 数组的排序和查找 210

10.15 扩充转换 213

第11章 pandas数据分析处理库 216

11.1 pandas数据结构介绍 217

11.2 索引对象 226

11.3 核心的基本函数 227

11.4 索引和旋转 229

11.5 算术运算与对齐 232

11.6 处理默认值 233

11.7 多级索引 237

11.8 读/写数据 239

11.9 组合数据 243

11.10 数据分组操作 247

11.11 时间序列 249

第12章 Matplotlib数据可视化 260

12.1 Pyplot模块介绍 261

12.2 应用Pyplot模块 269

12.3 Artist模块 275

12.4 使用pandas绘图 283

第3篇 Python数据分析案例实战

第13章 案例1:数据挖掘 288

13.1 贝叶斯理论介绍 288

13.2 贝叶斯分类器的实现 290

13.3 协同过滤推荐系统 295

第14章 案例2:玩转大数据 305

14.1 案例概述 306

14.2 日志文件的分割 309

14.3 编写Map()函数处理小文件 311

14.4 编写Reduce()函数 313

博文视点

您阅读的专业智库

喜欢请分享至朋友圈

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180320B1T0SI00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券