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

2017年数据科学最流行的15个Python库

时间:2023-03-14 17:37:22 科技观察

Python近年来在数据科学界大受青睐,各种资源层出不穷。数据科学解决方案公司ActiveWizards最近根据自己的应用程序开发经验总结了数据科学家和工程师在2017年最常使用的Python库。一、核心库1、NumPy地址:http://www.numpy.org当使用Python开始处理科学任务时,不可避免地要求助于Python的SciPyStack,这是一款专门为Python中的科学计算而设计的软件(不是与SciPy混淆,SciPy只是这个堆栈的一部分,以及围绕它的社区)。堆栈相当大,里面有十几个库,所以我们想专注于核心包(尤其是最重要的包)。NumPy(代表NumericalPython)是构建科学计算堆栈的最基本的包。它为在Python中操作n维数组和矩阵提供了许多有用的函数。该库还提供了对NumPy数组类型的数学运算的矢量化,从而提高了性能,从而加快了执行速度。2.SciPy地址:https://www.scipy.orgSciPy是一个工程和科学软件库。除此之外,您还需要了解SciPyStack和SciPylibrary之间的区别。SciPy包括用于线性代数、优化、集成和统计的模块。SciPy库的主要功能建立在NumPy之上,因此它的数组大量使用了NumPy。它通过其特定的子模块提供高效的数值例程操作,例如数值积分、优化和许多其他例程。SciPy所有子模块中的函数都有很好的文档记录,这也是一个优势。3.Pandas地址:http://pandas.pydata.orgPandas是一个Python包,旨在简单直观地处理“标记”和“关系”数据。Pandas是处理数据的好工具。它专为快速简便的数据操作、聚合和可视化而设计。库中主要有两种数据结构:Series:一维DataFrames:二维例如,当你想从这两种结构中接收一个新的“Dataframe”类型的数据时,你会传递一个“Series”向“Dataframe”添加一行以接收这样的Dataframe:这只是您可以使用Pandas做的一些事情:轻松删除和添加“Dataframe”中的列将数据结构转换为“Dataframe”对象处理缺失数据,表示为NaN(NotaNumber)强大的分组II。可视化4.Matplotlib地址:https://matplotlib.orgMatplotlib是另一个SciPyStack核心包和另一个Python库,旨在根据您的需求轻松生成简单而强大的可视化效果。它是一款尖端软件,使Python(在NumPy、SciPy和Pandas的帮助下)成为MatLab或Mathematica等科学工具的显着竞争对手。然而,这个库是低级的,这意味着你需要编写更多的代码来实现高级的可视化效果,通常比使用更高级的工具要付出更多的努力,但总体来说还是值得一试的。稍加努力,您就可以进行任何可视化:折线图散点图条形图和直方图饼图茎状图等高线图场图频谱图Plus使用Matplotlib创建标签、网格、图例和许多其他格式的实体的功能。基本上,一切都是可定制的。该库支持不同的平台,可以使用不同的GUI工具包来描述生成的可视化效果。许多不同的IDE(例如IPython)都支持Matplotlib的特性。还有一些额外的库可以使可视化更加容易。5、Seaborn地址:https://seaborn.pydata.orgSeaborn主要专注于统计模型的可视化;这种可视化包括热图,它可以总结数据,也可以描述整体分布。Seaborn基于Matplotlib并且高度依赖它。6.Bokeh地址:http://bokeh.pydata.orgBokeh也是一个不错的可视化库,它的目的是交互可视化。与之前的库相反,这个库独立于Matplotlib。正如我们已经提到的,Bokeh的重点是交互性,它通过现代浏览器以数据驱动文档(d3.js)的风格呈现。7.Plotly地址:https://plot.ly***说说Plotly。它是一个基于Web的工具箱,用于构建可视化,将API暴露给某些编程语言(其中包括Python)。plot.ly网站上有一些功能强大、开箱即用的图形。为了使用Plotly,您需要设置API密钥。图形处理将在服务器端完成并发布在互联网上,但有一种方法可以避免这种情况。3.机器学习8.SciKit-Learn地址:http://scikit-learn.orgScikits是SciPyStack的附加包,专为特定功能(如图像处理和辅助机器学习)而设计。就后者而言,最突出的一个是scikit-learn。该软件包建立在SciPy之上,并大量使用其数学运算。scikit-learn有一个简洁一致的界面来利用常见的机器学习算法,使机器学习在生产中的应用变得容易。将非常好的代码质量与良好的文档、易于使用和非常高性能相结合,这个库是使用Python进行机器学习的事实上的行业标准。4.深度学习:Keras/TensorFlow/Theano在深度学习方面,Python中最突出和最方便的库之一是Keras,它可以在TensorFlow或Theano之上运行。让我们看看他们的一些细节。9、Theano地址:https://github.com/Theano首先说一下Theano。Theano是一个Python包,它定义了类似NumPy的多维数组,以及数学运算和表达式。该库被编译为在所有体系结构上高效运行。这个库最初是由蒙特利尔大学的机器学习组开发的,主要是为了满足机器学习的需要。请注意,Theano在低级操作上与NumPy紧密集成。该库还优化了GPU和CPU的使用,从而为数据密集型计算提供更快的性能。效率和稳定性调整允许更精确的结果,即使对于非常小的值,例如log(1+x)即使对于较小的x也能给出很好的结果。10.TensorFlow地址:https://www.tensorflow.orgTensorFlow是来自谷歌的开发者。它是一个用于数据流图计算的开源库,专为机器学习而设计。它旨在满足谷歌对训练神经网络的高要求,是基于神经网络的机器学习系统DistBelief的继任者。然而,TensorFlow并不是谷歌科学独有的——它也足够强大,可以为许多现实世界的应用程序提供支持。TensorFlow的一个关键特性是其多层节点系统,可以在大型数据集上快速训练人工神经网络。这为谷歌的语音识别和图像识别提供了动力。11、Keras地址:https://keras.io***,我们来看看Keras。它是一个使用高级接口构建神经网络的开源库,是用Python编写的。它易于理解并具有先进的可扩展性。它使用Theano或TensorFlow作为后端,但微软现在已经集成了CNTK(微软的认知工具包)作为新的后端。其极简主义设计旨在通过构建紧凑的系统进行快速简便的实验。Keras非常容易学习并允许快速制作原型。它完全是用Python编写的,所以它本质上是非常高级的。它是高度模块化和可扩展的。尽管它简单且面向高级,但Keras也足够深入和强大,可以进行严肃的建模。Keras的总体思路是将你的神经网络建立在层之上,然后围绕这些层构建一切。数据以张量的形式准备,第一层负责输入张量,最后一层用于输出。模型建立在两者之间。五、NaturalLanguageProcessing12.NLTK地址:http://www.nltk.org这个库的名字是NaturalLanguageToolkit(自然语言工具包),顾名思义,它可以用于符号和统计的常见任务自然语言处理。NLTK旨在促进NLP及相关领域(语言学、认知科学和人工智能等)的教学和研究,目前正在重点关注。NLTK允许许多操作,例如文本标记、分类和标记化、命名实体识别、构建语言语料库树(揭示句子间和句子内的依赖关系)、词干提取、语义推理。所有构建块都可用于为不同的任务构建复杂的研究系统,例如情感分析、自动摘要。13.Gensim地址:http://radimrehurek.com/gensim这是一个Python的开源库,实现了向量空间建模和主题建模的工具。这个库是为大文本高效设计的,而不仅仅是内存中的内容。它通过广泛使用NumPy数据结构和SciPy操作来实现效率。它高效且易于使用。Gensim的目标是应用原始和非结构化的数字文本。Gensim实现了HierarchicalDirichletProcess(HDP)、LatentSemanticAnalysis(LSA)、LatentDirichletAllocation(LDA)等算法,以及tf-idf、randomprojection、word2vec、document2vec等算法,方便查看一组文档(通常称为语料库中文本的重复模式)。所有这些算法都是无监督的——不需要参数,唯一的输入是语料库。6.数据挖掘与统计14.Scrapy地址:https://scrapy.orgScrapy是一个爬虫(也称为蜘蛛机器人)库,用于从互联网上检索结构化数据(如联系信息或URL)。它是开源的,用Python编写。顾名思义,它最初是为抓取而设计的,但它已经发展成为一个成熟的框架,用于从API收集数据,并且还可以用作通用爬虫。该库的界面设计遵循著名的Don’tRepeatYourself原则——提醒用户编写通用且可重用的代码,因此可用于开发和扩展大型爬虫。Scrapy的体系结构是围绕Spider类构建的,它包含一组爬虫遵循的指令。15.Statsmodels地址:http://www.statsmodels.orgstatsmodels是Python的一个库,你可能从名字就猜到了,它使用户能够估计方法并执行统计断言和分析以进行数据探索。使用线性回归模型、广义线性模型、离散选择模型、稳健线性模型、时间序列分析模型和各种估计器,许多有用的特征都是描述性和统计性的。该库还提供了广泛的绘图函数,专门用于统计分析和使用大数据统计调整以获得良好的性能。7.结论此列表中的库被许多数据科学家和工程师认为是最先进的,了解和熟悉它们很有价值。以下是这些库在GitHub上活动的详细统计数据:当然,这不是一个详尽的列表,还有许多其他库、工具包和框架值得关注。示例包括用于特定任务的SciKit包,包括用于图像的SciKit-Image。如果您有好的想法,请与我们分享。原文:https://medium.com/activewizards-machine-learning-company/top-15-python-libraries-for-data-science-in-in-2017-ab61b4f9b4a7【本文为专栏原文翻译机器心,微信公众号《机器心(id:almosthuman2014)》】点此查看作者更多好文