最受欢迎的 15 大 Python 库(2017)
核心库
1. NumPy (提交数: 15980, 贡献者数: 522)
当开始处理Python中的科学任务,Python的SciPy Stack肯定可以提供帮助,它是专门为Python中科学计算而设计的软件集合(不要混淆SciPy库,它是SciPy Stack的一部分,和SciPy Stack的社区)这样我们开始来看一下吧。然而,SciPy Stack相当庞大,其中有十几个库,我们把焦点放在核心包上(特别是最重要的)。
关于建立科学计算栈,最基本的包是Numpy(全称为Numerical Python)。它为Python中的n维数组和矩阵的操作提供了大量有用的功能。该库提供了NumPy数组类型的数学运算向量化,可以改善性能,从而加快执行速度。
2. SciPy (提交数: 17213, 贡献者数: 489)
SciPy是一个工程和科学软件库。再次提醒,你需要理解SciPy Stack和SciPy库之间的区别。
SciPy包含线性代数,优化,集成和统计的模块。SciPy库的主要功能是建立在NumPy上,从而它的数组大量的使用了NumPy的。它通过其特定子模块提供有效的数值例程,并作为数字积分、优化和其他例程。SciPy的所有子模块中的功能都有详细的说明 ——又是一个SciPy非常有帮助的点。
3. Pandas (提交数: 15089, 贡献者数:762)
Pandas是一个Python包,旨在通过“标记”和“关系”数据进行工作,简单直观。Pandas是数据整理的完美工具。它设计用于快速简单的数据操作,聚合和可视化。
可视化
4.Matplotlib (提交数: 21754, 贡献者数: 588)
又一个SciPy Stack核心软件包以及 Python库,Matplotlib为轻松生成简单而强大的可视化而量身定制。它是一个顶尖的软件(在NumPy,SciPy和Pandas的帮助下),它使Python成为像MatLab或Mathematica这样的科学工具的竞争对手。
然而,这个库是低层级的,这意味着你需要编写更多的代码才能达到高级的可视化效果,而且通常会比使用更多的高级工具付出更多的努力,但总体上这些努力是值得的。
5. Seaborn (提交数: 1699, 贡献者数: 71)
Seaborn主要关注统计模型的可视化;这种可视化包括热图,这些热图(heat map)总结数据但仍描绘整体分布。Seaborn基于Matplotlib,并高度依赖于此。
6. Bokeh (提交数: 15724, 贡献者数: 223)
另一个很不错的可视化库是Bokeh,它针对交互式可视化。与以前的库相比,它独立于Matplotlib。正如我们提到的,Bokeh的主要焦点是交互性,它通过现代浏览器以数据驱动文档(d3.js)的风格呈现。
7. Plotly (提交数: 2486, 贡献者数: 33)
最后,关于Plotly的话。它是一个基于Web用于构建可视化的工具箱,提供API给一些编程语言(Python在内)。在plot.ly网站上有一些强大的、上手即用的图形。为了使用Plotly,你将需要设置API密钥。图形将在服务器端处理,并发布到互联网,但有一种方法可以避免。
机器学习
8. SciKit-Learn (提交数:21793, 贡献者数:842)
Scikits是Scikits Stack额外的软件包,专为像图像处理和机器学习辅助等特定功能而设计。对于机器学习辅助,scikit-learn是所有软件包里最突出的一个。它建立在SciPy之上,并大量利用它的数学运算。
scikit-learn给常见的机器学习算法公开了一个简洁、一致的接口,可简单地将机器学习带入生产系统中。该库中集成了有质量的代码和良好的文档、简单易用并且十分高效,是使用Python进行机器学习的实际行业标准。
深度学习—— Keras / TensorFlow / Theano
在深度学习方面,Python中最着名和最便的库之一是Keras,它可以在TensorFlow或Theano框架上运行。让我们来看一下它们的一些细节。
9.Theano. (提交数:25870, 贡献者数:300)
首先让我们谈谈Theano。
Theano是一个Python软件包,它定义了与NumPy类似的多维数组,以及数学运算和表达式。此库是被编译的,可实现在所有架构上的高效运行。最初由蒙特利尔大学机器学习组开发,它主要用于满足机器学习的需求。
值得注意的是,Theano紧密结合了NumPy在低层次上的运算 。另外,该库还优化了GPU和CPU的使用,使数据密集型的计算平台性能更佳。
效率和稳定性微调保证了即使在数值很小的情况下,仍有更精确的结果,例如,即使只给出x的最小值,log(1 + x)仍能计算出合理的结果。
10. TensorFlow. (提交数: 16785,贡献者数: 795)
TensorFlow来自Google的开发人员,它是数据流图计算的开源库,为机器学习不断打磨。它旨在满足谷歌对训练神经网络的高需求,并且是基于神经网络的机器学习系统DistBelief的继任者。然而,TensorFlow并不限制于谷歌的科学应用范围 – 它可以通用于多种多样的现实应用中。
TensorFlow的关键特征是它的多层节点系统,可以在大型数据集上快速训练神经网络。这为谷歌的语音识别和图像对象识别提供了支持。
11. Keras. (提交数: 3519,贡献者数: 428)
最后我们来看看Keras。它是一个用Python编写的开源的库,用于在高层的接口上构建神经网络。它简单易懂,具有高级可扩展性。Keras使用Theano或TensorFlow作为后端,但微软现在正努力整合CNTK(微软的认知工具包)作为新的后端。
设计中的简约方法旨在通过建立紧凑型系统进行快速、简便的实验。
Keras真的容易上手,并在持续完善它的快速原型能力。它完全用Python编写,可被高度模块化和扩展。尽管它以易上手、简单和以高层次为导向,但是Keras足够有深度并且足够强大,去支持复杂的模型。
自然语言处理
12. NLTK (提交数: 12449,贡献者数: 196)
这个库的名称“Natural Language Toolkit”,代表自然语言工具包,顾名思义,它用于符号学和统计学自然语言处理(NLP) 的常见任务。 NLTK旨在促进NLP及相关领域(语言学,认知科学人工智能等)的教学和研究,目前受到重点关注。
NLTK的功能允许很多操作,例如文本标记,分类和标记,实体名称识别,建立语料库,可以显示语言内部和各句子间的依赖性、词根、语义推理等。所有的构建模块都可以为不同的任务构建复杂的研究系统,例如情绪分析,自动总结。
13. Gensim (提交数: 2878,贡献者数: 179)
它是一个用于Python的开源库,为有向量空间模型和主题模型的工作提供了使用工具。这个库是为了高效处理大量文本而设计的,所以不仅可以进行内存处理,还可以通过广泛使用NumPy数据结构和SciPy操作来获得更高的效率。Gensim高效也易于使用。
Gensim旨在与原始和非结构化的数字文本一起使用。 它实现了诸如hierarchical Dirichlet processes(HDP),潜在语义分析(LSA)和潜在Dirichlet分配(LDA)之类的算法,以及tf-idf,随机预测,word2vec和document2vec,便于检查一组文档中有重复模式的文本 (通常称为语料库)。所有的算法均是无监督的,意味着不需要任何参数,唯一的输入只有语料库。
数据挖掘,统计学
14. Scrapy (提交数: 6325,贡献者数: 243)
Scrapy库是用于从网络结构化检索数据(如联系人信息或URL),可以用来设计crawling程序(也称为蜘蛛bots)。
它是开源的,使用用Python编写的。最开始只是如它的名字暗示的一样,只用来做scraping,但是它现在已经在完整的框架中发展,能够从API采集数据并作为通用的crawlers了。
该库在界面设计中标榜着“不要重复自己” 它推荐用户们编写泛化得到、可被重复使用的通用代码,从而构建和扩展大型的crawlers。
Scrapy的架构围绕着Spider class构建,这其中包含了crawler追从的一套指令。
15. Statsmodels (提交数: 8960,贡献者数: 119)
你可能从名字就猜出大概了,statsmodels使用户能够通过使用各种统计模型的估算方法进行数据挖掘,并执行统计判断和分析。
许多有用的特征是可被描述的,并通过使用线性回归模型,广义线性模型,离散选择模型,鲁棒线性模型,时间序列分析模型,各种估计方法得出统计结果。
这个库还提供了广泛的标定功能,专门用于大数据统计中的性能优化工作。
总结
许多数据科学家和工程师认为这些库是顶级的,并值得关注,或者需要或多或少了解它们。
最受欢迎的 15 大 Python 库(2017)的更多相关文章
- 探讨2018年最受欢迎的15顶级Python库!
近日,数据科学网站 KDnuggets 评选出了顶级 Python 库 Top15,领域横跨数据科学.数据可视化.深度学习和机器学习.如果本文有哪些遗漏,你可以在评论区补充. 图 1:根据 GitHu ...
- 数据处理一条龙!这15个Python库不可不知
如果你是一名数据科学家或数据分析师,或者只是对这一行业感兴趣,那下文中这些广受欢迎且非常实用的Python库你一定得知道. 从数据收集.清理转化,到数据可视化.图像识别和网页相关,这15个Python ...
- 最受欢迎的15个Python开源框架
GitHub中15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. 1.Django: Python Web应用开发框架 Django 应 ...
- 10 大 python 库
TensorFlow Scikit-Learn Numpy Keras PyTorch LightGBM Eli5 SciPy Theano Pandas 简介 python 是最流行和使用最广泛的编 ...
- 2017年排名前15的数据科学python库
2017年排名前15的数据科学python库 2017-05-22 Python程序员 Python程序员 Python程序员 微信号 pythonbuluo 功能介绍 最专业的Python社区,有每 ...
- 20个必不可少的Python库也是基本的第三方库
个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们是: Requests.Kenneth Reitz写的最富盛名的http库.每个Python程序员都应该有它. Scrapy. ...
- Python 库大全
作者:Lingfeng Ai链接:http://www.zhihu.com/question/24590883/answer/92420471来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非 ...
- 哪些 Python 库让你相见恨晚?【转】
原文链接:https://www.zhihu.com/question/24590883/answer/92420471 原文链接:Python 资源大全 ---------------- 这又是一个 ...
- Python库,让你相见恨晚的第三方库
环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具.pyenv – 简单的 Python 版本管理工具.Vex – 可以在虚拟环境中执行命令.virt ...
随机推荐
- bzoj3437小P的牧场
bzoj3437小P的牧场 题意: n个牧场,在每个牧场见控制站的花费为ai,在该处建控制站能控制从此处到左边第一个控制站(或边界)之间的牧场.一个牧场被控制的花费等于它到控制它的控制站之间的牧场数目 ...
- P1136 迎接仪式 题解
题目描述 LHX教主要来X市指导OI学习工作了.为了迎接教主,在一条道路旁,一群Orz教主er穿着文化衫站在道路两旁迎接教主,每件文化衫上都印着大字.一旁的Orzer依次摆出"欢迎欢迎欢迎欢 ...
- easyUI时间控件
##=============================JSP======================================<div class="labelw l ...
- 使用nvm安装node,运行node报错 node: command not found
1. 使用nvm安装node之后,直接运行node命令会报错 node: command not found 需要使用nvm ls 查询一下当前使用的安装的node版本,然后使用node use 版 ...
- 手把手教你安装Office 2019 for Mac ,安装包和破解码都给你准备好了,还装不上的话,你找我!
准备一个安装包,和一个破解工具 安装MicrosoftOffice16.23.19030902_Installer.pkg, 注意在断网情况下安装 同时不要自动更新 , 安装好之后不要打开文件! ...
- 高效C++:让自己习惯C++
视C++为一个联邦语言 面向过程,面向对象,泛型编程,元编程,C++同时支持,强大而迷惑 C++语言可以分为如下4个部分: C,C语言相同 C with Class,包括封装.继承.多态... Tem ...
- 题解 SP1841 【PPATH - Prime Path】
模拟赛考到了这个题,但我傻傻的用了\(DFS\),于是爆了零 后来才想明白,因为搜索树的分支很多,但答案的深度却又没有那么深,所以在这里\(BFS\),而\(DFS\)一路搜到底的做法则会稳稳地\(T ...
- 原来python还可以这样处理文件
首先我为大家介绍一下python语言吧! Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言 ...
- C++头文件居然可以这么打!!!! 长见识了!!!
返回主页 longdie 这人,生于天,立于地,为的就是顶天立地. 未来的答案早已被宇宙计算好了,人类自出现,答案就在那里,人类灭亡了,答案也在那里,,但是人活着,不就是为了看看未来发生了什么吗?如果 ...
- 在CentOS下安装两个Tomcat
在CentOS下安装两个Tomcat [版权声明:本文为博主原创文章,转载请说明出处.希望能和大家共同学习] 1.不同的tomcat启动和关闭监听不同的端口 2.不同的tomcat的启动文件start ...