最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

2017年度15个最好的数据科学领域Python库

[复制链接]
跳转到指定楼层
楼主
发表于 2017-6-23 14:18:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
尽管Python在数据科学领域在近些年已经吸引了很多注意力,我们想要基于我们的经验,大概描述一下数据科学家和工程师最常用的也是最有用的Python库。
核心库
1、Numpy
当开始尝试用Python解决科学任务时,我们不可避免会求助于Python的SciPy Stack,Scipy Stack是一个专门为在Python上进行科学计算的软件的集合(不要为SciPy包而困惑,那只是这个Stack的一个子集和围绕这个Stack的社区)。然而,这个Stack非常巨大,有超过一打的库在里面,我们只聚焦在核心的包上(最必须的一部分)。
Numpy(stands for Numerical Python)包是最根本的包,甚至于SciPy Stack就是围绕这个包建立起来的。她为用Python操作数组和矩阵提供了丰富的有用特性。该库提供了NumPy数组类型的数学运算向量化,可以改善性能,从而加快执行速度。
2.SciPy
SciPy是一个工程和科学软件库。 您还需要了解SciPy Stack和SciPy Library之间的区别。 SciPy包含线性代数,优化,集成和统计的模块。 SciPy库的主要功能是建立在NumPy的基础之上,因此它的数组大量使用了NumPy。 它通过其特定的子模块提供有效的数值例程作为数字积分,优化和许多其他例程。 SciPy的所有子模块中的功能都有详细的记录。
3.Pandas
Pandas是一个设计来简单直观地对有标记的数据或者关系型数据进行操作的Python包。它是一个数据清洗的完美工具,被设计用来快速简单的数据操作,聚合和可视化。
在这个库中主要由两个数据结构:
“Series” – 1维
“Data Frames” – 2维
如下只是我们基于Pandas能做的事情的小清单:
  • 在DataFrame中轻易地删除或者添加栏
  • 把数据结构转换为DataFrame对象
  • 处理缺失数据,用NaNs代表
  • λ 强力的分组(GroupBy)功能
可视化
4.Matplotlib
MatPlotlib是另一个SciPy Stack核心软件包和另一个Python库,专为轻松生成丰富的可视化图形而量身定制。他让Python正成为像MatLab或者Mathematica这样的科学工具的有力竞争者。然而,这个库相当底层,意味着你需要编写更多的代码才能达到高级的可视化效果,通常会比使用更多的高级工具付出更多的努力,但总体来说努力是值得的。
只需要一点功夫,你就能做出下面任何的可视化方法:
  • 线图;
  • 散点图;
  • 条形图和直方图;
  • 饼状图;
  • 茎图;
  • 等高线图;
  • 矢量场图;
  • 频谱图。
还有使用Matplotlib创建标签,网格,图例和许多其他格式化实体的功能。 基本上,一切都是可定制的。
该库由不同的平台支持,并使用不同的GUI套件来描述所得到的可视化。 不同的IDE(如IPython)支持Matplotlib的功能。
还有一些额外的库可以使可视化变得更加容易。
5.Seaborn
Seaborn主要聚焦于统计模型的可视化;这些可视化包括总结数据但仍描绘整体分布的热图。Seaborn是基于Matplotlib建立的,并高度依赖于那个包。
6.Bokeh
Boken是另一个强大的可视化库,目标是建立交互可视化的图标。与之前的图书馆相比,这个图书馆独立于Matplotlib。 正如我们已经提到的那样,Bokeh的主要聚焦在交互性,它通过现代浏览器以数据驱动文档(d3.js)的风格呈现。
7.Plotly
简单介绍一下Plotly。它是一个基于Web的工具箱,将API暴露给某些编程语言(其中包括Python)来构建可视化。 在plot.ly网站上有一些强大的,开箱即用的图形。为了使用Plotly,您将需要设置您的API密钥。图形将被处理在服务器端,并将在互联网上发布。
机器学习
8.SciKit-Learn
Scikits是SciPy Stack的补充软件包,专为特定功能(如图像处理和机器学习辅助)而设计。 在这些领域,其中最突出的一个是scikit-learn。该软件包建立在SciPy的上层,并大量使用其数学操作。
scikit-learn公开了一个简洁和一致的界面,与常见的机器学习算法,使得把机器学习带入生产系统变得简单。 此库有着高质量的代码和良好的文档,并使用简单性能优越,是使用Python进行机器学习的事实上的行业标准。
深度学习 – Keras / TensorFlow / Theano
在深度学习方面,Python中最突出和最方便的库之一是Keras,它可以在TensorFlow或者Theano之上运行。让我们来看一下他们的一些细节。
9.Theano
首先,让我们谈谈Theano。
Theano是一个Python包,它定义了与NumPy类似的多维数组,以及数学运算和表达式。 这个库是自编译的,使其能够在所有架构上高效运行。 最初由蒙特利尔大学机器学习组开发,主要用于机器学习的需求。
重要的是要注意的是,Theano与NumPy在低层次的操作上紧密集成。 该库还优化了GPU和CPU的使用,使数据密集型计算的性能更快。
效率和稳定性调整允许更精确的结果,甚至非常小的值,例如,log(1 + x)的计算将给出x的最小值的认知结果。
10. TensorFlow
TensorFlow是由Google的开发人员开发,它是一个图形化的数据流计算开源库,专注于机器学习。 它旨在满足Google环境对训练神经网络的高度要求,并且是基于神经网络的机器学习系统DistBelief的继任者。然而,TensorFlow并不是严格用于谷歌范围的科学用途 – 在一般的实际应用中同样有效。
TensorFlow的关键特征是其多层节点系统,可以在大型数据集上快速训练人工神经网络。 这为Google的语音识别和图像对象识别提供了支持。
11.Keras
最后,我们来看看Keras。它是一个用Python编写的用于在高级界面构建神经网络的开源库。它简单易懂又有着高度可扩展性。它使用Theano或TensorFlow作为后端,但Microsoft现在将CNTK(Microsoft的认知工具包)集成为新的后端。
设计中的极简方法旨在通过建立极小集进行快速和容易的实验。
Keras 真的非常容易入门而且可以通过快速标准逐渐深入。它是用纯Python编写的,高度模块化而又可扩展。尽管它的轻松,简单和高度定向,Keras仍然对大型模型有着足够深和有力的机器学习能力。
Keras的核心是基于层,其他一切都围绕着它们构建。数据预处理为张量,第一层负责输入张量,最后一层负责输出,并建立模型。
自然语言处理
12.NLTK
这套工具包的名称代表自然语言工具包,顾名思义,它用于符号和统计自然语言处理的常见任务。 NLTK旨在促进NLP及相关领域(语言学,认知科学人工智能等)的教学和研究,目前正在被重点关注。
NLTK的功能允许许多操作,例如文本标记,分类和标记,名称实体标识,建立语言树,显示语言间和句子内依赖性,词根,语义推理。 所有的构建块都可以为不同的任务构建复杂的研究系统,例如情绪分析,自动总结。
13.Gensim
它是一个用于Python的开源库,可以用来进行向量空间建模和主题建模的工具。 这个工具包不仅可以进行内存处理,还设计来高效处理大型文本。效率通过使用NumPy数据结构和SciPy操作来实现。既高效又易于使用。
Gensim旨在与原始和非结构化数字文本一起使用。 Gensim实现了诸如分层Dirichlet进程(HDP),潜在语义分析(LSA)和潜在Dirichlet分配(LDA)之类的算法,以及tf-idf,随机投影,word2vec和document2vec便于检查文本中的重复模式的文本的一套文件(通常称为语料库)。 所有的算法是无监督的 – 不需要任何参数,唯一的输入是语料库。
数据挖掘、统计
14.Scrapy
Scrapy是用于从网络检索结构化数据(如联系人信息或URL)的爬行程序(也称为蜘蛛机器人)的库。
它是开源的,用Python编写。 它的设计严格按照爬行的方式,正如它的名字,但是它已经在完整的框架中发展,能够从API采集数据并作为通用爬虫。
该图书馆在界面设计中着名的“不要重复自己” – 它提示用户编写将要重复使用的通用代码,从而构建和缩放大型爬虫。
Scrapy的架构围绕着Spider类构建,包含了爬行器跟踪的一系列指令。
15.Statsmodels
正如您可能从名称中猜出的那样,statsmodels是一个用于Python的库,使用户能够通过使用各种统计模型估计方法进行数据挖掘并执行统计断言和分析。
许多有用的特征是描述性的,并通过使用线性回归模型,广义线性模型,离散选择模型,鲁棒线性模型,时间序列分析模型,各种估计量进行统计。
图书馆还提供了可扩展的绘图功能,专门为统计分析和在进行大数据统计时表现良好而设计。
结论
这些库被许多数据科学家和工程师认为是该列表的首位,值得一看,并至少熟悉它们。
以下是每个库Github活跃程度的详细统计资料:
当然,这不是完全详尽的列表,还有许多其他库,工具包和框架也是非常有用的,尤其是针对一些特别的任务。 一个很好的例子是不同的SciKit软件包,专注于特定领域,如用于处理图像的SciKit-Image。

楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-4-20 06:19

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表