分享

【数据分析丨主题周】Python数据分析四剑客:IPython、Numpy、pandas、Matpl...

 CHOK2620 2018-03-21

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壳以及内核具有以下这些重要的特性:

  • 全面的对象检查。

  • 记录输入历史。

  • 缓存输出结果。

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

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

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

  • 历史信息登录与重载。

  • 支持不同语法。

  • 轻松嵌入到其他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.pydata.org)

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



 

博文视点

您阅读的专业智库

喜欢请分享至朋友圈

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多