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

2017年15个优秀的数据科学Python库

时间:2023-03-13 09:08:40 科技观察

由于近年来Python在数据科学领域获得了很多关注,我想根据最近的经验列出一些对数据科学家和工程师最有用的库。由于所有库都是开源的,我们添加了来自Github的提交、贡献者、计数和其他指标,这些指标可以用作Python数据科学库受欢迎程度的代理指标。核心库1.NumpyNumpy(NumericalPython的缩写)当试图用Python解决科学任务时,numpy是基石。它可以操作数组和矩阵并提供丰富的功能。该库提供对NumPy数组类型的数学运算的矢量化,从而提高性能,从而加快执行速度。2.SciPySciPy是一个工程和科学软件库。SciPy包括用于线性代数、优化、集成和统计的模块。SciPy库的主要功能是基于NumPy,因此它的数组大量使用了NumPy。3、PandasPandas是一个可以方便处理的表格数据(经常接触,通俗易懂的excel表格)。出色的数据清理工具,专为快速轻松的数据操作、聚合和可视化而设计。这个库中主要有两种数据结构:pandas.Series-1维pandas.DataFrames-2维以下只是我们可以用Pandas做的一小部分事情:轻松删除或添加DataFrame中的列将数据结构转换为DataFrame对象处理缺失数据,使用NaN表示GroupBy方法以可视化GoogleTrendshistoryGitHubpullrequestshistory4。MatplotlibMatPlotlib是一个Python可视化库,它使Python成为MatLab或Mathematica等科学工具的有力竞争者。然而,该库是相当低级的,这意味着您需要编写更多代码才能实现高级可视化,通常比使用更高级的工具要付出更多的努力,但总的来说,这些努力是值得的。通过一些工作,您可以创建以下任何可视化效果:线图散点图条形图和直方图饼图茎状图等高线图向量场图频谱图并使用Matplotlib创建标签、图例和绘图许多其他用于格式化实体的函数。基本上,一切都是可定制的。该库受不同平台支持,并使用不同的GUI套件来描述生成的可视化效果。不同的IDE(例如IPython)支持Matplotlib的功能。还有一些其他库可以使可视化更容易。5.SeabornSeaborn主要专注于统计模型的可视化;这些可视化包括汇总数据但仍描述整体分布的热图。Seaborn建立在Matplotlib之上,并且高度依赖于该包。6.BokehBoken是另一个强大的可视化库,目标是创建交互式可视化图标。与之前的库相比,这个库独立于Matplotlib。正如我们已经提到的,Bokeh的主要重点是交互性,由现代浏览器以数据驱动文档(d3.js)样式呈现。7.Plotly简单介绍一下Plotly。它是一个基于Web的工具箱,将API暴露给某些编程语言(其中包括Python)以构建可视化。http://plot.ly网站上提供了一些功能强大、开箱即用的图形。为了使用Plotly,您需要设置API密钥。图形将在服务器端进行处理,并将发布在Internet上。Google趋势历史GitHub拉取请求历史机器学习8.SciKit-LearnScikits专为图像处理和机器学习辅助等特定功能而设计。在这些领域中,最突出的领域之一是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.TensorFlowTensorFlow由谷歌开发者开发,是一个图形数据流计算开源库,专注于机器学习。它旨在满足谷歌对训练神经网络环境的高要求,是基于神经网络的机器学习系统DistBelief的继任者。然而,TensorFlow并非严格用于Google范围内的科学用途——它在一般的实际应用中同样有效。TensorFlow的一个关键特性是其多层节点系统,可以在大型数据集上快速训练人工神经网络。这为谷歌的语音识别和图像对象识别提供了动力。11.Keras***,来看看Keras。它是一个用Python编写的开源库,用于在高级接口中构建神经网络。它易于理解且高度可扩展。它使用Theano或TensorFlow作为后端,但微软现在正在集成CNTK(微软的认知工具包)作为新的后端。设计中的极简主义方法旨在通过构建极小的集合来快速轻松地进行实验。Keras真的很容易上手,并且可以通过快速标准逐渐深入。它是用纯Python编写的,高度模块化但可扩展。尽管Keras轻巧、简单和高度定向,但对于大型模型的机器学习来说,Keras仍然足够深入和强大。Keras的核心是基于层,其他一切都是围绕层构建的。数据预处理是张量张量,第一层负责输入张量,最后一层负责输出,建立模型。Google趋势历史GitHub拉取请求历史自然语言处理。12.NLTK这个工具包的名称代表NaturalLanguageToolkit,顾名思义,它用于符号和统计自然语言处理的常见任务。NLTK旨在促进NLP及相关领域(语言学、认知科学中的人工智能等)的教学和研究,目前正在重点关注。NLTK的功能允许许多操作,例如文本标记、分类和标记、名称实体识别、构建语言树、显示语际和句内依赖关系、词根、语义推理。所有构建块都可用于为不同的任务构建复杂的研究系统,例如情感分析、自动摘要。13.Gensim是Python的开源库,可用于向量空间建模和主题建模工具。该工具包不仅可以进行内存处理,还可以高效处理大文本。效率是通过使用NumPy数据结构和SciPy操作来实现的。既高效又易于使用。Gensim旨在处理原始和非结构化数字文本。Gensim实现了HierarchicalDirichletProcess(HDP)、LatentSemanticAnalysis(LSA)和LatentDirichletAllocation(LDA)等算法,以及tf-idf、randomprojection、word2vec和document2vec以方便检查文本是否存在重复模式Aset文件(通常称为语料库)。所有算法都是无监督的——不需要参数,唯一的输入是语料库。GoogleTrends历史GitHubpullrequests历史数据挖掘,统计14.ScrapyScrapy是一个用于爬虫(也称为蜘蛛机器人)的库,可以从网络中检索结构化数据,例如联系信息或URL。它是开源的,用Python编写。顾名思义,它严格按照爬虫的方式设计,但它已经在一个完整的框架中开发,能够从API收集数据并充当通用爬虫。该库以其在界面设计中的“不要重复自己”而闻名——它提示用户编写将被重用的通用代码,从而构建和扩展大型爬虫。Scrapy的架构是围绕Spider类构建的,它包含了一系列供爬虫跟踪的指令。15.Statsmodels顾名思义,statsmodels是Python的一个库,它使用户能够使用各种统计模型估计方法进行数据挖掘并执行统计断言和分析。通过使用线性回归模型、广义线性模型、离散选择模型、稳健线性模型、时间序列分析模型和各种估计器,许多有用的特征是描述性和统计性的。该库还提供了可扩展的绘图函数,这些函数是专门为统计分析而设计的,在对大数据进行统计时表现良好。结论许多数据科学家和工程师认为这些库位于此列表的首位,值得一看并至少熟悉它们。以下是每个库在Github上的活跃度的详细统计数据:当然,这并不是一个详尽的列表,还有许多其他库、工具包和框架也非常有用,尤其是对于一些特殊任务。一个很好的例子是专注于特定领域的不同SciKit包,例如用于处理图像的SciKit-Image。