Python常用数据分析工具

Python数据分析工具

  • Python 本身的数据分析功能不强,需要安装一些第三方扩展库来增强它的能力。常用
    的库有Numpy 、Scipy 、Matplotlib 、Pandas 、Scikit-Learn 、Keras 和Gensim 等,下面将对
    这些库的安装和使用进行简单的介绍。
  • 如果你安装的是Anaconda 发行版,那么它已经自带了以下库: Numpy 、Scipy 、Matplotlib
    、Pandas 和Scikit-Leam。

Python常用数据分析工具_第1张图片

1 .Numpy

  • Python 并没有提供数组功能。虽然列表可以完成基本的数组功能,但它不是真正的数
    组,而且在数据量较大时,使用列表的速度就会慢得让人难以接受。为此, Numpy 提供了真
    正的数组功能,以及对数据进行快速处理的函数。Numpy 还是很多更高级的扩展库的依赖
    库,Scipy 、Matplotlib 、Pandas 等库都依赖于它。值得强调的是, Numpy 内
    置函数处理数据的速度是C 语言级别的,因此在编写程序的时候,应当尽量使用它们内置的
    函数,避免出现效率瓶颈的现象(尤其是涉及循环的问题) 。

2. Scipy

  • 如果说Numpy 让Python 有了Matlab 的味道,那么Scipy 就让Python 真正地成为了半个
    Matlab 了。Numpy 提供了多维数组功能,但它只是一般的数组,并不是矩阵。例如,当两个
    数组相乘时,只是对应元素相乘,而不是矩阵乘法。Scipy 提供了真正的矩阵,以及大械基
    于矩阵运算的对象与函数。
  • Scipy 包含的功能有最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变
    换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算,显然,这些功
    能都是挖掘与建模必备的。
  • Scipy 依赖于Numpy, 因此安装它之前得先安装Numpy 。

3 . Matplotlib

  • 不论是数据挖掘还是数学建模,都免不了数据可视化的问题。对于Python 来说,Matplotlib 是最著名的绘图库,它主要用于二维绘图,当然它也可以进行简单的三维绘图。它不但提供了一整套和Matlab 相似但更为丰富的命令,让我们可以非常快捷地用Python 可视化数据,而且允许输出达到出版质量的多种图像格式。

4. Pandas

  • python数据分析主力工具Pandas 。Pandas 是Python 下最强大的数据分析和探索
    工具(貌似没有之一) 。它包含高级的数据结构和精巧的工具,使得在Python 中处理数据非
    常快速和简单。Pandas 构建在NumPy 之上,它使得以NurnPy 为中心的应用很容易使用。
  • Pandas 的名称来自于面板数据( Panel Data) 和Python 数据分析( Data Analysis), 它最初被作
    为金融数据分析工具而开发出来,由AQR Capital Management 公司千2008 年4 月开发出来,
    并于2009 年底开源。
  • Pandas 的功能非常强大,支持类似于SQL 的数据增、删、查、改,并且带有丰富的数
    据处理函数;支持时间序列分析功能;支持灵活处理缺失数据等。事实上,单纯Pandas 工
    具就足以写一本书,读者可以阅读Pandas 的主要作者之一Wes McKinney 写的《利用Python
    进行数据分析》一书,学习更详细的内容。
  • Pandas 基本的数据结构是Series 和DataFrame 。顾名思义, Series 就是序列,类似一维数组; DataFrame 则是相当于一张二维的表格,类似二维数组,它的每一列都是一个Series 。
    为了定位Series 中的元索, Pandas 提供了Index 对象,每个Series 都会带有一个对应的
    Index, 用来标记不同的元素, Index 的内容不一定是数字,也可以是字母、中文等,它类似
    千SQL 中的主键。
    类似地, DataFrame 相当于多个带有同样Index 的Series 的组合(本质是Series 的容器),
    每个Seiries 都带有唯一的表头,用来标识不同的Series 。

5. StatsModels

  • Pandas 着眼于数据的读取、处理和探索,而StatsModels 则更加注重数据的统计建模分
    析,它使得Python 有了R 语言的味道。StatsModels 支持与Pandas 进行数据交互,因此,它
    与Pandas 结合,成为了Python 下强大的数据挖掘组合。

  • StatModel 依赖于Pandas (当然也依赖于Pandas 所依赖的),同时还依赖于
    pasty (一个描述统计的库) 。

6. Scikit-Learn

  • 从该库的名字可以看出,这是一个机器学习相关的库。不错, Scikit-Learn 是Python 下
    强大的机器学习工具包,它提供了完善的机器学习工具箱,包括数据预处理、分类、回归、
    聚类、预测和模型分析等。
  • Scikit-Learn 依赖于NumPy 、SciPy 和Matplotlib, 因此,只需要提前安装好这几个库,
    然后安装Scik止Learn 就基本上没有什么问题了。

7. Keras

  • 虽然Scikit-Leam 足够强大,但是它并没有包含一种强大的模型一人工神经网络。人
    工神经网络是功能相当强大的、但是原理又相当简单的模型,在语言处理、图像识别等领域
    有着重要的作用。近年来逐渐火起来的“深度学习“算法,本质上也就是一种神经网络,可
    见在Python 中实现神经网络是非常必要的。
  • 事实上, Keras 并非简单的神经网络库,而是一个基
    于Theano 的强大的深度学习库,利用它不仅仅可以搭建普通的神经网络,还可以搭建各种
    深度学习模型,如自编码器、循环神经网络、递归神经网络、卷积神经网络等。由千它是基
    于Theano 的,因此速度也相当快。
  • 有必要介绍一下Theano, 它也是Python 的一个库,它是由深度学习专家Yoshua Bengio
    带领的实验室开发出来的,用来定义、优化和高效地解决多维数组数据对应数学表达式的模
    拟估计问题。它具有高效地实现符号分解、高度优化的速度和稳定性等特点, 最重要的是它
    还实现了GPU 加速,使得密集型数据的处理速度是CPU 的数十倍。
  • 用Theano 就可以搭建起高效的神经网络模型,但是对于普通读者来说门槛还是相当高
    的, Keras 正是为此而生,它大大简化了搭建各种神经网络模型的步骤, 允许普通用户轻松
    地搭建并求解具有几百个输入节点的深层神经网络, 而且定制的自由度非常大, 甚至可能惊
    呼:搭建神经网络可以如此简单!

8. Gensim

  • 在Gensim 的官网中,它对自己的简介只有一句话: topic modelling for humans!
    Gensim 是用来处理语言方面的任务,如文本相似度计算、LOA 、Word2Vec 等,这些领
    域的任务往往需要比较多的背景知识,通常的情况是:研究这方面的读者,已经不需要我再
    多说什么;不研究这方面的读者,在这里也说不清楚。(所以Gensim 的介绍只有一句话也就
    不奇怪了。)
  • 需要一提的是, Gensim把Google 公司在2013 年开源的著名的词向量构造工具Word2Vec
    编译好了作为它的子库,因此需要用到Word2Vec 的读者也可以直接用Gensim 而无需自行
    编译了。据说Gensim 的作者对Word2Vec 的代码进行了优化,据说它在Gensim 下的表现
    比原生的Word2Vec 还要快。(为了实现加速,需要准备C++ 编译器环境,因此,建议用到
    Gensim 的Word2Vec 的读者在Linux 下环境运行。)

你可能感兴趣的:(数据分析)