系列数据已表明,Python 在解决数据科学任务和挑战方面处于不断领先地位。
去年,我们曾发表一篇博文《Top 15 Python Libraries for Data Science in 2017》,概述了当时业界已证明最有帮助的Python库。今年,我们扩展了这个清单,增加了新的 Python 库,并重新审视了去年已经讨论过的 Python 库,重点关注了这一年来的更新。
我们的选择实际上包含了 20 多个库,因为其中一些库是相互替代的,可以解决相同的问题。因此,我们将它们放在同一个分组。
核心库及统计数据
Pandas
Commits:17144
Contributors:1165
官 网:https://pandas.pydata.org/
Pandas 是一个 Python 库,提供高级的数据结构和各种各样的分析工具。这个软件包的主要特点是能够将相当复杂的数据操作转换为一两个命令。Pandas 包含许多用于分组、过滤和组合数据的内置方法,以及时间序列功能。
Numpy
Commits: 17911
Contributors: 641
官 网:http://www.numpy.org/
NumPy 是科学应用程序库的主要软件包之一,用于处理大型多维数组和矩阵,它大量的高级数学函数集合和实现方法使得这些对象执行操作成为可能。
SciPy
Commits:19150
Contributors:608
官 网:https://scipy.org/scipylib/
科学计算的另一个核心库是 SciPy。它基于 NumPy,其功能也因此得到了扩展。SciPy 主数据结构又是一个多维数组,由 Numpy 实现。
这个软件包包含了帮助解决线性代数、概率论、积分计算和许多其他任务的工具。此外,SciPy 还封装了许多新的 BLAS 和 LAPACK 函数。
StatsModels
Commits:10067
Contributors:153
官 网:
http://www.statsmodels.org/devel/
Statsmodels 是一个 Python 模块,它为统计数据分析提供了许多机会,例如统计模型估计、执行统计测试等。在它的帮助下,你可以实现许多机器学习方法并探索不同的绘图可能性。
Python 库不断发展,不断丰富新的机遇。因此,今年出现了时间序列的改进和新的计数模型,即 GeneralizedPoisson、零膨胀模型(zero inflated models)和NegativeBinomialP,以及新的多元方法:因子分析、多元方差分析以及方差分析中的重复测量。
机 器 学 习
Scikit-learn
Commits:22753
Contributors:1084
官 网:
http://scikit-learn.org/stable/
这个基于 NumPy 和 SciPy 的 Python 模块是处理数据的最佳库之一。它为许多标准的机器学习和数据挖掘任务提供算法,如聚类、回归、分类、降维和模型选择。
XGBoost/LightGBM/CatBoost
Commits:3277 / 1083 / 1509
Contributors:280 / 79 / 61
官 网:
http://xgboost.readthedocs.io/en/latest/http://lightgbm.readthedocs.io/en/latest/Python-Intro.htmlhttps://github.com/catboost/catboost
它们都是解决常见问题的竞争者,并且使用方式几乎相同。
这些库提供了高度优化的、可扩展的、快速的梯度增强实现,这使得它们在数据科学家和 Kaggle 竞争对手中非常流行,因为在这些算法的帮助下赢得了许多比赛。
Eli5
Commits:922
Contributors:6
官 网:
https://eli5.readthedocs.io/en/latest/
通常情况下,机器学习模型预测的结果并不完全清楚,这正是 Eli5 帮助应对的挑战。
它是一个用于可视化和调试机器学习模型并逐步跟踪算法工作的软件包,为 scikit-learn、XGBoost、LightGBM、lightning 和 sklearn-crfsuite 库提供支持,并为每个库执行不同的任务。
深 度 学 习
TensorFlow
Commits:33339
Contributors:1469
官 网:https://www.tensorflow.org/
TensorFlow 是一个流行的深度学习和机器学习框架,由 Google Brain 开发。它提供了使用具有多个数据集的人工神经网络的能力。
在最流行的 TensorFlow应用中有目标识别、语音识别等。在常规的 TensorFlow 上也有不同的 leyer-helper,如 tflearn、tf-slim、skflow 等。
Keras
Commits:4539
Contributors:671
官 网:https://keras.io/
Keras 是一个用于处理神经网络的高级库,运行在 TensorFlow、Theano 之上。
现在由于新版本的发布,还可以使用 CNTK 和 MxNet 作为后端。它简化了许多特定的任务,并且大大减少了单调代码的数量。然而,它可能不适合某些复杂的任务。
PyTorch
Commits:11306
Contributors:635
官 网:https://pytorch.org/
PyTorch 是一个大型框架,它允许使用 GPU 加速执行张量计算,创建动态计算图并自动计算梯度。
在此之上,PyTorch 为解决与神经网络相关的应用程序提供了丰富的 API。该库基于 Torch,是用 C 实现的开源深度学习库。
分步式深度学习
Dist-keras/elephas/spark-deep-learning
Commits:1125 / 170 / 67
Contributors:5 / 13 / 11
官 网:
http://joerihermans.com/work/distributed-keras/https://pypi.org/project/elephas/https://databricks.github.io/spark-deep-learning/site/index.html
它们都在迅速流行和发展,而且很难挑出一个库,因为它们都是为解决共同的任务而设计的。
这些包允许你在 Apache Spark 的帮助下直接训练基于 Keras 库的神经网络。Spark-deep-learning 还提供了使用 Python 神经网络创建管道的工具。
自然语言处理
Gensim
Commits:3603
Contributors:273
官 网:
https://radimrehurek.com/gensim/
Gensim 是一个用于健壮语义分析、主题建模和向量空间建模的 Python 库,构建在Numpy和Scipy之上。它提供了流行的 NLP 算法的实现,如 word2vec。
尽管 gensim 有自己的 models.wrappers.fasttext 实现,但 fasttext 库也可以用来高效学习词语表示。
NLTK
Commits:13041
Contributors:236
官 网:https://www.nltk.org/
NLTK 是一组库,一个用于自然语言处理的完整平台。在 NLTK 的帮助下,你可以以各种方式处理和分析文本,对文本进行标记和标记,提取信息等。
NLTK 也用于原型设计和建立研究系统。
SpaCy
Commits:8623
Contributors:215
官 网:https://spacy.io/
SpaCy 是一个具有优秀示例、API 文档和演示应用程序的自然语言处理库。这个库是用 Cython 语言编写的,Cython 是 Python 的 C 扩展。
它支持近 30 种语言,提供了简单的深度学习集成,保证了健壮性和高准确率。其另一个重要特性是专为整个文档处理设计的体系结构,无须将文档分解成短语。
数 据 采 集
Scrapy
Commits:6625
Contributors:281
官 网:https://scrapy.org/
Scrapy 是一个用来创建网络爬虫,扫描网页和收集结构化数据的库。此外,Scrapy 可以从 API 中提取数据。
由于该库的可扩展性和可移植性,使得它用起来非常方便。
可 视 化
Matplotlib
Commits:25747
Contributors:725
官 网:
https://matplotlib.org/index.html
可视化
Matplotlib 是一个用于创建二维图和图形的底层库。藉由它的帮助,你可以构建各种不同的图标,从直方图和散点图到费笛卡尔坐标图。
此外,有许多流行的绘图库被设计为与 matplotlib 结合使用。
Bokeh
Commits:16983
Contributors:294
官 网:
https://bokeh.pydata.org/en/latest/
bokeh 库
Bokeh 库使用 JavaScript 小部件在浏览器中创建交互式和可缩放的可视化。
该库提供了多种图表集合,样式可能性(styling possibilities),链接图、添加小部件和定义回调等形式的交互能力,以及许多更有用的特性。
Seaborn
Commits:2044
Contributors:83
官 网:
https://seaborn.pydata.org/
seaborn
Seaborn 本质上是一个基于 matplotlib 库的高级 API。它包含更适合处理图表的默认设置。
此外,还有丰富的可视化库,包括一些复杂类型,如时间序列、联合分布图(jointplots)和小提琴图(violin diagrams)。
Plotly
Commits:2906
Contributors:48
官 网:https://plot.ly/python/
Plotly 是一个流行的库,它可以让你轻松构建复杂的图形。该软件包适用于交互式 Web 应用程,可实现轮廓图、三元图和三维图等视觉效果。
Pydot
Commits:169
Contributors:12
官 网:
https://pypi.org/project/pydot/
pydot
Pydot 是一个用于生成复杂的定向图和无向图的库。它是用纯 Python 编写的 Graphviz 接口。在它的帮助下,可以显示图形的结构,这在构建神经网络和基于决策树的算法时经常用到。
上述所列就是我们在 2018 年为数据科学领域中丰富的 Python 库集合。与去年相比,一些新的现代库越来越受欢迎,而那些已经成为经典的数据科学任务的库也在不断改进。
Github data python 2018
原文链接:
https://activewizards.com/blog/top-20-python-libraries-for-data-science-in-2018/
《2017数据科学最好用的15个python库》原文链接:
https://activewizards.com/blog/top-15-libraries-for-data-science-in-python/
登录官网,免费申请试用
----------------------------
ImageQ:中文领域领先的大数据语义分析应用服务品牌
官方微信:ImageQ大数据
官方网站:www.imageq.cn
领取专属 10元无门槛券
私享最新 技术干货