当前位置: 首页 > 科技观察

2017年最流行的15个Python库是什么?

时间:2023-03-12 09:10:09 科技观察

近年来,Python在数据科学行业扮演着越来越重要的角色。因此,根据我最近的经验,我在本文中列出了对数据科学家和工程师最有用的库。由于这些库是开源的,我们从Github中提取了提交数量、贡献者和其他指标,可以作为库流行度的参考指标。核心库1.NumPy(投稿数:15980,贡献者数:522)开始用Python处理科学任务时,Python的SciPyStack绝对能帮上忙,它是专门为Python中的科学计算设计的软件合集(做不要混淆作为SciPyStack一部分的SciPy库和SciPyStack社区)所以让我们开始吧。然而,SciPyStack相当大,里面有十几个库,我们专注于核心包(尤其是最重要的包)。关于科学计算栈的建立,最基础的包就是Numpy(全称NumericalPython)。它为在Python中操作n维数组和矩阵提供了许多有用的函数。该库提供对NumPy数组类型的数学运算的矢量化,从而提高性能,从而加快执行速度。2.SciPy(提交:17213,贡献者:489)SciPy是一个工程和科学软件库。雷锋网再次提醒大家,需要了解SciPyStack和SciPylibrary的区别。SciPy包括用于线性代数、优化、集成和统计的模块。SciPy库的主要功能建立在NumPy之上,因此其数组大量使用了NumPy。它通过其特定的子模块以及数值积分、优化和其他例程提供高效的数值例程。SciPy的所有子模块中的函数都有详细的文档记录——这是SciPy非常有用的另一点。3.Pandas(提交数量:15089,贡献者数量:762)Pandas是一个Python包,旨在简单直观地处理“标记”和“关系”数据。Pandas是处理数据的好工具。它专为快速简便的数据操作、聚合和可视化而设计。库中有两种主要的数据结构:“系列”,一维“数据帧”,二维例如,当你想从这两种类型的结构中接收一个新的数据帧时,通过传递一个系列,你将将单行接收到DataFrame的DF中:这是您可以使用Pandas执行的一些操作的小列表:轻松删除和添加DataFrame中的列将数据结构转换为数据框(DataFrame)对象处理丢失的数据,表示为NaN强大的分组GoogleTrends记录trends.google.comGitHub请求历史datascience.com/trendsvisualization4.Matplotlib(提交:21754,贡献者:588)和一个SciPyStack核心包以及一个Python库,Matplotlib是为轻松生成简单而强大的而量身定制的可视化。它是一款全能软件(在NumPy、SciPy和Pandas的帮助下),使Python成为MatLab或Mathematica等科学工具的竞争对手。然而,这个库是低级的,这意味着你需要编写更多的代码来实现高级的可视化,通常比使用更高级的工具要付出更多的努力,但总的来说,这些努力是值得的。只需支付少量费用,您就可以进行任何可视化:线图、散点图、条形图和直方图、饼图;干图、等高线图、场图、频谱图和使用Matplotlib创建标签、网格、图例和许多其他格式化实体功能。基本上,一切都是可定制的。该库受不同平台支持,并使用不同的GUI套件来描述生成的可视化效果。不同的IDE(如IPython)都支持Matplotlib的功能。还有一些额外的库可以使可视化更加容易。5.Seaborn(提交:1699,贡献者:71)Seaborn主要关注统计模型的可视化;这种可视化包括热图,它总结了数据,但仍然描述了整体分布。Seaborn基于Matplotlib并且高度依赖它。6.Bokeh(提交:15724,贡献者:223)另一个很棒的可视化库是Bokeh,它以交互式可视化为目标。与以前的库相比,它独立于Matplotlib。正如我们提到的,Bokeh的主要焦点是交互性,它通过现代浏览器以数据驱动文档(d3.js)的风格呈现。7.Plotly(提交:2486,贡献者:33)***,关于Plotly。它是一个基于Web的工具箱,用于构建可视化,为某些编程语言(包括Python)提供API。plot.ly网站上有一些功能强大、随时可用的图形。为了使用Plotly,您需要设置一个API密钥。图形将在服务器端处理,并发布到互联网上,但有一种方法可以避免这种情况。GoogleTrends记录trends.google.comGitHubRequestHistorydatascience.com/trendsMachineLearning8.SciKit-Learn(Commits:21793,Contributors:842)专为机器学习辅助等特定功能而设计。对于机器学习辅助,scikit-learn是所有软件包中最突出的。它建立在SciPy之上,并大量使用其数学运算。scikit-learn为常见的机器学习算法提供了一个简洁一致的接口,使得将机器学习引入生产系统变得容易。该库集成了高质量的代码和良好的文档,易于使用且非常高效,是Python机器学习事实上的行业标准。深度学习-Keras/TensorFlow/Theano谈到深度学习,Python中最著名和最方便的库之一是Keras,它可以运行在TensorFlow或Theano框架上。让我们看看他们的一些细节。9.西阿诺。(投稿数:25870,投稿人数:300)首先来说说Theano。Theano是一个Python包,它定义了类似于NumPy的多维数组,以及数学运算和表达式。这个库被编译为在所有架构上高效运行。最初由蒙特利尔大学机器学习组开发,主要用于满足机器学习的需求。值得注意的是,Theano与NumPy的低级操作紧密集成。此外,该库优化了GPU和CPU的使用,从而在数据密集型计算平台上实现更好的性能。效率和稳定性调整确保更准确的结果,即使对于小值,例如即使只给定x的最小值,log(1+x)仍然可以计算出合理的结果。10.张量流。(提交数量:16785,贡献者数量:795)TensorFlow来自谷歌开发者。它是一个用于数据流图计算的开源库,不断为机器学习打磨。它旨在满足谷歌对训练神经网络的高需求,是基于神经网络的机器学习系统DistBelief的继任者。然而,TensorFlow并不局限于谷歌的科学应用程序——它可以普遍用于各种现实世界的应用程序。TensorFlow的一个关键特性是其多层节点系统,可以在大型数据集上快速训练神经网络。这为谷歌的语音识别和图像对象识别提供了动力。11.喀拉斯。(提交:3519,贡献者:428)***让我们来看看Keras。它是一个用Python编写的开源库,用于在高级接口上构建神经网络。它易于理解并具有先进的可扩展性。Keras使用Theano或TensorFlow作为后端,但微软现在正在努力集成CNTK(微软的认知工具包)作为新的后端。设计中的极简主义方法旨在通过构建紧凑的系统来快速轻松地进行实验。Keras确实易于使用,并且还在不断改进其快速原型制作能力。它完全用Python编写,具有高度模块化和可扩展性。尽管Keras具有易用性、简单性和高层次导向性,但它的深度和功能足以支持复杂的模型。GoogleTrendsHistorytrends.google.comGitHubRequestHistorydatascience.com/trendsNaturalLanguageProcessing12.NLTK(NummitsofCommits:12449,NumberofContributors:196)这个库的名字是“NaturalLanguageToolkit”,代表顾名思义,NaturalLanguageToolkit用于符号学和统计自然语言处理(NLP)中的常见任务。NLTK旨在促进NLP及相关领域(语言学、认知科学中的人工智能等)的教学和研究,目前受到广泛关注。NLTK的功能允许许多操作,如文本标注、分类和标记、实体名称识别、构建语料库,并可以显示语言内部和句子之间的依赖关系、词根、语义推理等。所有构建块都可以使用为不同的任务构建复杂的研究系统,如情感分析、自动摘要。13.Gensim(提交:2878,贡献者:179)它是Python的开源库,提供用于处理向量空间模型和主题模型的工具。该库专为高效处理大量文本而设计,因此不仅可以进行内存处理,还可以通过广泛使用NumPy数据结构和SciPy操作来提高效率。Gensim高效且易于使用。Gensim旨在处理原始和非结构化数字文本。它实现了分层狄利克雷过程(HDP)、潜在语义分析(LSA)和潜在狄利克雷分配(LDA)等算法,以及tf-idf、随机预测、word2vec和document2vec,这些算法有助于检查一组重复模式文本文档(通常称为语料库)。所有算法都是无监督的,这意味着不需要任何参数,唯一的输入是语料库。GoogleTrendsHistorytrends.google.comGitHubRequestHistorydatascience.com/trendsDataMining,Statistics14.Scrapy(提交数:6325,贡献者:243)Scrapy库用于从网络中结构化检索数据(例如联系信息或URL),可用于设计爬虫程序(也称为蜘蛛程序)。它是开源的,用Python编写。顾名思义,它最初只是抓取,但现在已经发展成为一个完整的框架,能够从API收集数据并充当通用爬虫。图书馆在界面设计上标榜“不要重复自己”。它建议用户编写通用和可重用的通用代码来构建和扩展大型爬虫。Scrapy的体系结构是围绕Spider类构建的,它包含一组爬虫遵循的指令。15.Statsmodels(投稿数:8960,投稿人数:119)顾名思义,statsmodels可以让用户使用各种统计模型,通过估计的方法进行数据挖掘,进行统计判断和分析。通过使用线性回归模型、广义线性模型、离散选择模型、稳健线性模型、时间序列分析模型和各种估计方法,可以统计地描述和获得许多有用的特征。该库还提供了广泛的校准功能,专门用于大数据统计中的性能优化。总结许多数据科学家和工程师认为这些库是最好的,值得关注,或者需要或多或少地了解一下。以下是Github上每个库的详细统计信息:当然,这不是一个详尽的列表,还有许多其他库和框架值得关注。一个很好的例子是SciKit的不同包,每个包都专注于特定领域,例如用于处理图像的SciKit-Image。