专栏名称: Python程序员
最专业的Python社区,有每日推送,免费电子书,真人辅导,资源下载,各类工具。我已委托“维权骑士”(rightknights.com)为我的文章进行维权行动
目录
相关文章推荐
Python爱好者社区  ·  刚刚!微信 DeepSeek ... ·  昨天  
Python爱好者社区  ·  模仿一下领导说话的样子 ·  16 小时前  
Python爱好者社区  ·  35个爬虫实例 ·  3 天前  
Python爱好者社区  ·  机器学习全书 ·  3 天前  
Python爱好者社区  ·  梁文锋导师项志宇引关注,个人主页满满都是对团 ... ·  3 天前  
51好读  ›  专栏  ›  Python程序员

2017年排名前15的数据科学python库

Python程序员  · 公众号  · Python  · 2017-05-22 11:09

正文

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

最近几年,python在数据科学领域展现出极大的生命力。在这里,我们根据实践经验,列出一些对于数据科学家和工程师最常用的python库。

核心库

1、NumPy

当我们用python来处理科学计算任务时,不可避免的要用到来自SciPy  Stack的帮助。SciPy Stack是一个专为python中科学计算而设计的软件包,注意不要将它与SciPy库搞混了,后者只是这个软件包中的一部分。接下来我们一块来看看这个软件包。通常这个软件包是非常大的,里面包含十几个库。但是,在这里我们将集中介绍最核心的库,尤其是最基础的。

NumPy(表示Numerical  Python)是构建科学计算包最基础的库。它为python中n维数组和矩阵操作提供了大量有用的功能。这个库还支持NumPy数组类型的向量化数学操作,能够改善计算性能,加快计算速度。

2、SciPy

SciPy是一个工程和科学计算的软件库。在这里,你需要再次理解SciPy  Stack和SciPy库的不同。SciPy包含许多和线性代数,数学优化,积分和统计有关的模块。SciPy库的主要功能是构建在NumPy上的,因为它使用了大量NumPy库的数组。SciPy通过其特有的子模块提供许多有关数值积分,优化和其它方面的例程,而且其子模块都有详细的功能说明。

3、Pandas
Pandas是一个python库,通过数据标记和数据之间的关系来进行工作,其特点是简单直观。它非常适合用于数据分析,可以快速简单的对数据进行操作,整合以及可视化。

来看下在这个库里主要的两种数据结构:

“Series"-一维数据结构

“Data Frames”-二维数据结构

例如,当你想将这两种数据结构混合形成一个新的DataFrame时,原来的Series会追加在原来的DataFrame后面:

这里列出用Pandas可以很容易做的一些操作:

  • 从DataFrame中可以容易的删除和添加列

  • 将数据结构转换成DataFrame对象

  • 将不存在的数据用NaN替代

  • 强大的数据分组功能


可视化

4、Matplotlib

Matplotlib是SciPy Stack核心软件包中的另一个python库,可以轻松的生成简单强大的数据可视化图。在NumPy,SciPy和Pandas的基础上,Matplotlib是构成python的一个强大的工具包,可以和科学计算工具Matlab,Mathematics等形成强大的竞争力。唯一不足的是这个库的层次比较低,要想实现高水平的数据可视化必须要付出更多的努力写更多的代码。不过,总的来说,它还是值得一试的。
下面列出一些其常用的可视化图:

  • 直线图

  • 散点图

  • 条形图和直方图

  • 饼状图

  • 茎叶图

  • 矢量图

  • 量场图

  • 频谱图

当然,还可以使用Matplotlib来创建标签,网格,图例等其它与图形相关的操作,基本上,所有东西都是可以自定义的。这个库支持不同的平台,在相应的平台下会充分利用其对应的GUI套件让结果可视化。此外,不同的IDE(像IPython)都支持Matplotlib的操作。当然还有一些其它的库使得数据可视化操作更加容易。

5、Seaborn

Seaborn主要用来统计模块的可视化操作,例如可以用其来显示热量图以反映数据的总体分布。此外,这个模块是构建在Matplotlib上的,并且高度依赖它。

6、Bokeh

另一个比较好的可视化包是Bokeh,其主要致力于交互式可视。与前面介绍的那些库不一样的是,Bokeh并不依赖于Matplotlib,其可以通过现代浏览器以脚本(d3.js)的形式来展现最终的图形。

7、Plotiy

最后,关于可视化python包的是Plotly。它是基于WEB工具箱来构建可视化的,其开放API接口给一些编程语言,当然包括python。在plotly的网站上有一些强大的开箱即用的图形,在使用plotly的时候最好设置好你的API密匙,这些图形将会在服务器一端处理并且可以发布到互联网上,当然也可以不必如此。

机器学习
8、SciKit-Learn
Scikits是SciPy Stack另外的包,专门为图像处理和机器学习等特定功能而设计的。对于机器学习,其最杰出的包就是scikit-learn,这个包构建在SciPy之上,大量使用了SciPy的数学操作。
Scikit-learn向一般的机器学习算法开放了一个简洁一致的接口,使得机器学习可以简单的推进到生产系统中。这个库包含了许多高质量的代码和好的说明文档,非常容易使用,事实上,可以说是用python学习机器学习的行业标准了。

深度学习-Keras/TensorFlow/Theano

在深度学习方面,python中最突出和最方便的库就是Keras了,它可以说在TensorFlow和Theano功能之上。接下来,让我们看一下它们的一些细节。

9、Theano
首先是Theano,它和NumPy类似都定义了多维数组,同时还有一些其它的数学操作与表达式。这个库是编译过的,可以高效的运行在各种架构上。它最初是由蒙特利尔大学机器学习小组开发的,主要用于机器学习。
有一点需要指出的是,Theano和NumPy在低层次的操作上有着紧密的结合。而且它还充分优化了GPU和CPU的使用,在数据密集型计算方面速度更快。在效率和稳定性方面的优化使得其可以计算更加精确的结果甚至是非常小的值。例如在计算 log(1+x)时,可以给出x的最小值以及最终的结果。

10、TensorFlow
TensorFlow来自谷歌的开发小组,是一个基于数据流图计算的开源库,它强化了机器学习,旨在满足Google环境对训练神经网络的高需求,可以看做是基于神经网络 机器学习系统DistCelief的继任者。此外,TensorFlow不仅用在Google科学计算,也可以满足实际应用的要求。TensorFlow的关键特点是其多层节点系统,可以在大型数据集上快速训练人工神经网络。这为Google的语音识别和图像对象识别提供了支持。
11、Keras
最后,让我们来看下Keras。Keras是用纯python写的高层神经网络开源库,具有简单易懂的高级扩展性。它用Theano和TensorFlow作为其后端,但是微软现在将CNTK(微软的认知工具包)集成为新的后端。Keras在设计中的简约方法旨在通过建立紧凑的系统来进行快速和容易的实验。
Keras是非常容易上手的,而且一直在其原型上不断地发展改进,具有高度的模块化和扩展性。抛开它的轻便,简洁以及高度模块化,Keras还是构建复杂模型的有力工具。

自然语言处理

12、NLTK







请到「今天看啥」查看全文