五个 Python 常用数据分析库

3,473 阅读4分钟

前言

Python 是常用是数据分析工具,常用的数据分析库有很多,下面主要介绍如下五个分析库:NumPy、Pandas、SciPy、StatsModels、Matplotlib。

NumPy

NumPy 是一个非常常用的数据分析库,更准确点说是一个数学计算库,包括下面的 Pandas 也依赖于 NumPy。话说为什么用 NumPy,他有什么优点?

  1. 众多内置的数学计算:文章你看到这里,说明你要做的工作大概率是和人工智能、机器学习或数据分析相关的工作,这些工作不是简单的代码逻辑的堆叠,而更多的数学的应用,时常需要矩阵计算、基本线性代数操作、随机模拟和傅里叶变换等,NumPy 内置就可以精心这些操作,而不需要你徒手进行傅里叶展开。
  2. 快:举个例子,矩阵 a 和 b 的乘法,可以直接写成 a * b(元素乘积)或 a @ b(矩阵乘积),会比你徒手写循环要快,原因你可能猜到了,那就是预编译成 C 代码或者用到更好的缓存策略等,有这样的优点,你没有什么理由不用。
  3. 代码简单:矩阵相乘上面的写法就比循环更易读,更少的代码也意味着更少的 Bug。

做数据分析,人生苦短,都已经用了 Python,那不妨了解一下 NumPy,你会有更深的理解。

Pandas

Pandas,Python Data Analysis Library,这是一个为数据建模分析而生的工具库,Pandas 包含许多数据模型,也吸纳了很多其他库的优势,比如上文就提到 Pandas 依赖于 NumPy,这里也建议了解了 NumPy 后再去学习 Pandas。Pandas 提供了大量的数据处理的函数和方法,尤其对大型数据集有其独特的优势,且由于其创建有着金融方面的背景,因此其在时间序列分析或经济学方面也有其独特的优势。

Matplotlib

Matplotlib 是一个 2D 绘图库。一堆数据摆在面前,或者是一个巨大的数据表格摆在面前,去分析其中数据特征,这样的任务对于人眼来说有点难度,但是如果转化为图形,则又是另一番感觉了。几行代码就可以画出精确的直方图、条形图、误差图或散点图,这样的工具对于数据分析来说就是神器呀。

上面就是 Python 数据分析三大支柱(当然,有人会说其他的库或工具也很好用,确实我不否认这一点,但是我个人及一部分人仍然认为上面三个库是 Python 数据分析三大支柱),下面继续分析其他三个也很好用值得了解学习的工具库。

SciPy

很多人也想把 SciPy 列为支柱工具包,可见其还是很重要的。SciPy 也依赖于 NumPy,SciPy 是一个科学计算工具库,其中也包含很多的高阶抽象和物理模型,在积分、差值、信号处理等。

StatsModels

StatsModels 包含了许多的统计模型,线性模型、广义线性模型、方差分析、时间序列(Pandas 也可以做,因为 StatsModels 又依赖于 Pandas)和线性混合效用模型等,在统计方面有其独特的优势。

后记

对于 Python 的数据分析库,我不得不说,他们之间真的是紧密的联系在了一起,往往官网也都是相互有链接索引,互相推荐,真的是抱团取暖呀。并且他们之间有些功能还略有重复,但又各有侧重,对于这一点,这也是难免的,因为数据分析一些基础的操作都是一致的,哪一个库又都不可能把那些基础的功能屏蔽掉。对我们来说,我们往往是都需要有一定的了解,在不同的工作或任务中,使用不同的工具库。

对于学习步骤,我的建议是先看看三大支柱(NumPy、Pandas 和 Matplotlib)的文档,学会基本使用后,具体的 API 以后的学习过程中慢慢去掌握。

wechat.png