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

Jessica瑾妞

2018-03-23

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科学计算包的一部分。

主要特点包括:

  • o 提供给用户一个强大的交互界面。
  • o Jupter Notebook的内核。
  • o 高效的交互式处理、呈现数据(特别是与Matplotlib一起使用)。
  • o 适合并行处理计算。

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

IPython主要包括:

  • o 一个强大的、交互式的Python壳
  • o Jupyter内核,支持用户在Jupyter Notebook以及其他终端与IPython的交互

IPyton壳

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

  • o 全面的对象检查。
  • o 记录输入历史。
  • o 缓存输出结果。
  • o 扩展的代码补全功能,可以补全变量、关键字、文件名、函数名等。
  • o 对系统“魔法”方法的扩展,可以处理与操作系统相关的任务。
  • o 丰富的配置系统支持不同状态的切换。
  • o 历史信息登录与重载。
  • o 支持不同语法。
  • o 轻松嵌入到其他Python程序中。
  • o 对pdb调试器和Python测试工具的集成。

Numpy

(图源:numpy.org)

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

主要包括:

  • o 强大的N维数组对象和向量运算
  • o 一些复杂的功能
  • o 与C/C++和Fortran代码的集成
  • o 实用的线形代数运算、傅立叶变换、随机数生产等

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

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

pandas

(图源:pandas.pydata.org)

pandas是建立在Numpy基础上的高效数据分析处理库,是Python的重要数据分析库。
pandas提供了众多的高级函数,极大地简化了数据处理的流程,尤其是被广泛地应用于金融领域的数据分析。

pandas主要包括:

  • o 带有标签的数据结构,主要包括序列(Series)和数据框(DataFrame)等。
  • o 允许简单索引和多级索引。
  • o 整合了对数据集的集合和转换功能。
  • o 生成特定类型的数据。
  • o 支持从Excel、CSV等文本格式中文导入数据,以Pytables/HDF5格式高效地读/写数据。
  • o 能够高效地处理带有默认值的数据集。
  • o 能够直接进行常规的统计回归分析。

Matplotlib

(图源:matplotlib.org)

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

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

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

    • o 能够绘制出高质量的图形,并且图形里面的镶嵌的文本必需足够美观。
    • o 能够和Tex文档一起输出。
    • o 能够嵌入到GUI(图形用户界面)应用程序中。
    • o 代码足够简洁并且可扩展性强。
    • o 绘图命令足够方便。

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

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

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

============

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

本书详细地介绍了IPython、Numpy、pandas、Matplotlib库的组成与使用,为科学计算相关人员提供了有用的参考资料。采取循序渐进的写作风格,对于工具的安装、使用步骤、方法技巧逐步展开,加以图解和应用场景,即使完全不懂Python和数据分析的人员,也可以流畅地读完本书。
无论哪种语言,编程的方法、模式、数据结构、算法都是相通的。本书将科学计算、数据结构与各种工具和方法完美结合,让非Python读者也能融会贯通,让学习统计的人能找到更适合的统计方法和数据分析处理方法。

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

========

本书目录结构

第1篇 Python数据分析语法入门第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数据分析工具入门第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数据分析案例实战第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

读者评论

相关专题

相关博文

  • 用GPU进行TensorFlow计算加速

    用GPU进行TensorFlow计算加速

    管理员账号 2018-03-01

    小编说:将深度学习应用到实际问题中,一个非常大的问题在于训练深度学习模型需要的计算量太大。为了加速训练过程,本文将介绍如何如何在TensorFlow中使用单个GPU进行计算加速,也将介绍生成TensorFlow会话(tf.Sessio...

    管理员账号 2018-03-01
    5188 0 3 1
  • AI 大战高考作文!实测 ChatGPT、文心一言、通义千问等 8 款“神器”

    AI 大战高考作文!实测 ChatGPT、文心一言、通义千问等 8 款“神器”

    博文小编 2023-06-12

    2023 年高考作文题目火热出炉,其中全国甲卷作文题引人深思: 人们因技术发展得以更好地掌控时间,但也有人因此成了时间的仆人。 身处技术圈的我们,对于这句话可能有很多话想说。而对于这个话题,CSDN 也想问问近来大火的 AI 技术本...

    博文小编 2023-06-12
    283 0 0 0
  • 提示工程七巧板:让ChatGPT发挥出最佳性能

    提示工程七巧板:让ChatGPT发挥出最佳性能

    博文小编 2023-06-09

    机器有机器的作用,人有人的独特个性和价值。 正因为如此, 一方面,ChatGPT 等人工智能语言模型需要通过不断与人类的公共知识信息数据交互、汇聚,不断与人类进行对话,才能拥有越来越好的智能表现; 另一方面,作为人工智能机器...

    博文小编 2023-06-09
    61 0 0 0