写点什么

2018 年,20 大 Python 数据科学库都做了哪些更新?

  • 2018-07-25
  • 本文字数:4314 字

    阅读完需:约 14 分钟

2018 年,Python 仍然是数据科学领域解决重大任务和挑战的佼佼者。去年,我们发了一篇博文,列举了一些被证明是最有用的 Python 库。今年,我们扩充了原来的清单,并重新审视之前讨论过的库,重点关注在过去一年内出现的更新。我们对它们进行了分组,排序不分先后,因为真的说不清它们哪个更好。

核心库与统计

1. NumPy(提交:17911,贡献者:641)

一般我们会将科学领域的库作为清单打头,NumPy 是该领域的主要软件库之一。它旨在处理大型的多维数组和矩阵,并提供了很多高级的数学函数和方法,因此可以用它来执行各种操作。

在过去一年,开发团队对该库进行了大量改进。除了错误修复和解决兼容性问题之外,关键的变更还包括样式改进,即 NumPy 对象的打印格式。此外,一些函数现在可以处理任意编码的文件,只要这些编码受 Python 支持。

2. SciPy(提交:19150,贡献者:608)

另一个科学计算核心库 SciPy,基于 NumPy 而构建,并扩展了 NumPy 的功能。SciPy 的主要数据结构是多维数组,使用 Numpy 实现。该库提供了一些用于解决线性代数、概率论、积分计算等任务的工具。

SciPy 通过与不同的操作系统进行持续集成的方式带来了重大改进,比如新的函数和方法,更重要的是——最新的优化器。此外,开发团队对很多新的 BLAS 和 LAPACK 函数进行了包装。

3.Pandas(提交:17144,贡献者:1165)

Pandas 是一个 Python 库,提供了高级的数据结构和各种分析工具。该库的一大特色是能够将相当复杂的数据操作转换为一两个命令。Pandas 提供了很多内置的方法,用于分组、过滤和组合数据,还提供了时间序列功能。所有这些方法的执行速度都很快。

新发布的 pandas 库还提供了数百个新特性、功能增强、错误修复和 API 变更。这些改进与 Pandas 对数据进行分组和排序的能力有关,支持自定义类型操作。

4. StatsModels(提交:10067,贡献者:153)

Statsmodels 是一个 Python 模块,为统计数据分析提供了很多可能性,例如统计模型估计、运行统计测试等。你可以借助它来实现很多机器学习方法,并探索不同的绘图可能性。

该库在不断演化,带来了更多的可能性。今年带来了时间序列改进和新的计数模型 GeneralizedPoisson、零膨胀模型和 NegativeBinomialP,以及新的多变量方法因子分析、MANOVA 和 ANOVA 的重复测量。

可视化

5. Matplotlib(提交:25747,贡献者:725)

Matplotlib 是一个用于创建二维图表和图形的低级库。你可以用它来构建各种图表,从直方图和散点图到非笛卡尔坐标图。此外,很多流行的绘图库都为 Matplotlib 预留了位置,可与 Matplotlib 结合在一起使用。

该库在绘图样式方面做出了很多变更,如颜色、尺寸、字体、图例等。例如,坐标轴图例的自动对齐和对色盲患者更友好的色环。

6. Seaborn(提交:2044,贡献者:83)

Seaborn 实际上是基于 matplotlib 库构建的高级 API。它为处理图表提供了更恰当的默认选项。此外,它还提供了一组丰富的可视化图库,包括时间序列、联合图和小提琴图等复杂的类型。

Seaborn 的更新主要是问题修复。不过,FacetGrid(或 PairGrid)与增强的交互式 matplotlib 后端之间的兼容性有所改进,为可视化添加了参数和选项。

7. Plotly(提交:2906,贡献者:48)

Plotly 是一个可以帮助你轻松构建复杂图形的流行库。该库适用于交互式 Web 应用程序,它提供了很多很棒的可视化效果,包括轮廓图形、三元图和 3D 图表。

这个库在持续地增强和改进,带来新的图形和特性,支持“多链接视图”、动画和串扰集成。

8. Bokeh(提交:16983,贡献者:294)

Bokeh 库使用 JavaScript 小部件在浏览器中创建交互式和可伸缩的可视化图形。该库提供了多种图形、样式、链接图形式的交互能力、添加小部件、定义回调以及更多有用的功能。

Bokeh 改进的交互式功能值得称赞,例如可旋转的分类刻度标签,以及小型的缩放工具和自定义工具提示字段增强。

9. Pydot(提交:169,贡献者:12)

Pydot 是一个用于生成面向复杂图形和非面向复杂图形的库。它作为面向 Graphviz 的一个接口,使用 Python 编写。我们可以借助它来显示图形的结构,这在构建神经网络和基于决策树的算法时经常会用到。

机器学习

10. Scikit-learn(提交:22753,贡献者:1084)

这个基于 NumPy 和 SciPy 的 Python 模块是处理数据的最佳库之一。它为很多标准的机器学习和数据挖掘任务提供算法,例如聚类、回归、分类、降维和模型选择。

该库有很多增强功能。交叉验证已经获得更新,现在可以使用多个指标。一些训练方法(如邻近取样和逻辑回归等)得到一些小改进。它的主要更新之一是完成了通用术语和 API 元素词汇表。

11. XGBoost/LightGBM/CatBoost(提交:3277/1083/1509,贡献者:280/79/61)

梯度提升是最流行的机器学习算法之一,它的核心原理在于构建连续精炼的基本模型的集合,即决策树。因此,有些专门的库被设计用于方便快速地实现该方法。我们认为 XGBoost、LightGBM 和 CatBoost 是值得关注的。它们都是解决常见问题最强有力的工具,而且使用方式几乎一样。我们可以使用这些库快速实现高度优化且可扩展的梯度提升,所以它们在数据科学家和 Kaggle 竞争者中非常受欢迎,他们在这些算法的帮助下赢得了很多比赛。

12. Eli5(提交:922,贡献者:6)

通常情况下,机器学习模型的预测结果并不完全是清晰的,这个时候可以借助 Eli5 来解决这个问题。它是一个用于可视化和调试机器学习模型的库,可以逐步跟踪算法的执行过程。它支持 scikit-learn、XGBoost、LightGBM、lightning 和 sklearn-crfsuite 库,并可以为每个库执行不同的任务。

深度学习

13. TensorFlow(提交:33339,贡献者:1469)

TensorFlow 是一个流行的深度学习和机器学习框架,由 Google Brain 开发。它支持在人工神经网络中使用多个数据集。最受欢迎的 TensorFlow 应用场景包括物体识别、语音识别等。还有很多基于 TensorFlow 构建的库,例如 tflearn、tf-slim、skflow 等。

这个库发布新版本的速度很快,引入了很多新功能。最新的修复包括潜在的安全漏洞和改进的 TensorFlow 与 GPU 的集成,现在可以在单台计算机的多个 GPU 上运行 Estimator 模型。

14. PyTorch(提交:11306,贡献者:635)

PyTorch 是一个大型框架,可用它基于 GPU 加速执行张量计算、创建动态计算图以及自动计算梯度。此外,PyTorch 还提供了丰富的 API,用于解决与神经网络相关的应用。

该库基于 Torch 而构建,使用 C 语言实现,并包含了使用 Lua 编写的包装器。它的 Python API 于 2017 年推出,从那时起,该框架越来越受欢迎,并吸引了越来越多的数据科学家。

15. Keras(提交:4539,贡献者:671)

Keras 是一个用于处理神经网络的高级库,运行在 TensorFlow 或 Theano 之上,现在发布的新版本可以使用 CNTK 或 MxNet 作为后端。它简化了很多特定任务,并大大减少了样板代码的数量,但它可能不适用于某些复杂的事情。

该库在性能、可用性、文档和 API 方面进行了改进,并推出了一些新特性,如 Conv3DTranspose 层、新的 MobileNet 应用程序和自我规范化网络。

分布式深度学习

16. dist-keras/elephas/spark-deep-learning(提交:1125/170/67,贡献者:5/13/11)

深度学习问题变得越来越重要,因为越来越多的场景要求更多的时间和成本。而像 Apache Spark 这样的分布式计算系统可以更轻松地处理大量数据,这反过来又为深度学习带来更多的可能性。dist-keras、elephas 和 spark-deep-learning 变得越来越流行,并正在迅速发展演化。很难说它们当中哪个更好,因为它们都是为解决一些相同的任务而设计的。这些库和 Keras 可以直接用在 Apache Spark 中,用以训练神经网络。spark-deep-learning 还提供了工具用于为 Python 神经网络创建管道。

自然语言处理

17. NLTK(提交:13041,贡献者:236)

NLTK 是一组库的集合,一个完整的自然语言处理平台。你可以借助 NLTK 以各种方式处理和分析文本,如标记、打标签、提取信息等。NLTK 还用于原型设计和构建研究性系统。

该库的增强还包括 API 和兼容性的微小变更以及面向 CoreNLP 的新接口。

18. SpaCy(提交:8623,贡献者:215)

SpaCy 是一个自然语言处理库,包含了优秀的示例、API 文档和演示应用程序。该库使用 Cython(Python 的 C 扩展)编写。它支持将近 30 种语言,可以方便地与深度学习集成,并保证健壮性和高准确率。SpaCy 有一个为处理整个文档而设计的架构,在处理文档时不需要将它分成短语,这也是 SpaCy 的一个重要特性。

19. Gensim(提交:3603,贡献者:273)

Gensim 基于 Numpy 和 Scipy 而构建,是一个用于语义分析、主题建模和向量空间建模的 Python 库。它提供了主流的 NLP 算法实现,例如 word2vec。Gensim 有自己的 models.wrappers.fasttext 实现,不过仍然可以使用 fasttext 库进行单词表示的高效学习。

数据抓取

20. Scrapy(提交:6625,贡献者:281)

Scrapy 是一个用于创建扫描网站页面并收集结构化数据的爬虫的库。此外,Scrapy 可以从 API 中提取数据。因为具备良好的可扩展性和可移植性,该库使用起来非常方便。

该库在过去一年里的变化包括代理服务器的若干次升级以及改进的错误通知和问题识别系统。用在元数据设置中的 Scrapy 解析也有了新的特性。

结论

这些是我们列出的 2018 年数据科学 Python 库的集合。与去年相比,一些新的库越来越受欢迎,而那些经典库也正在不断改进。

下面的表格显示了这些库在 Github 上的活动统计信息。

各个库的链接地址:

NumPy: http://www.numpy.org/

SciPy: https://scipy.org/scipylib/

Pandas: https://pandas.pydata.org/

StatsModels: http://www.statsmodels.org/devel/

Matplotlib: https://matplotlib.org/index.html

Seaborn: https://seaborn.pydata.org/

Plotly: https://plot.ly/python/

Bokeh: https://bokeh.pydata.org/en/latest/

Pydot: https://pypi.org/project/pydot/

Scikit-learn: http://scikit-learn.org/stable/

XGBoost: http://xgboost.readthedocs.io/en/latest/

LightGBM: http://lightgbm.readthedocs.io/en/latest/Python-Intro.html

CatBoost: https://github.com/catboost/catboost

Eli5: https://eli5.readthedocs.io/en/latest/

TensorFlow: https://www.tensorflow.org/

PyTorch: https://pytorch.org/

Keras: https://keras.io/

dist-keras: http://joerihermans.com/work/distributed-keras/

elephas: https://pypi.org/project/elephas/

spark-deep-learning: https://databricks.github.io/spark-deep-learning/site/index.html

NLTK: https://www.nltk.org/

SpaCy: https://spacy.io/

Gensim: https://radimrehurek.com/gensim/

Scrapy: https://scrapy.org/

查看英文原文: https://www.kdnuggets.com/2018/06/top-20-python-libraries-data-science-2018.html

感谢蔡芳芳对本文的审校。

2018-07-25 08:042190
用户头像

发布了 731 篇内容, 共 454.0 次阅读, 收获喜欢 2003 次。

关注

评论

发布
暂无评论
发现更多内容

基于Java开发的供应商询价招标采购系统(SRM系统源码)

代码人,代码魂

Java springboot 采购 srm

YonGPT构筑酒旅企业AI大脑 轻松拿捏“松弛感”

用友BIP

AI YonGPT

快速教程|如何在 AWS EC2上使用 Walrus 部署 GitLab

SEAL安全

#GitLab Walrus 企业号11月PK榜

软件测试/测试开发丨探索Python魔力:第一个程序到快捷键大揭秘

测试人

Python 软件测试

关于稳定扩散最详细的介绍

3D建模设计

人工智能 Stable Diffusion AI自动纹理 稳定扩散

简单专业的照片修复工具 DxO ViewPoint 4免激活中文版

mac大玩家j

Mac软件推荐 图像修复工具 图像校正软件

Archicad 26中文for Mac(BIM建模软件) Archicad26破解详细安装教程

Rose

mac软件下载 建模软件 Archicad 26破解版 Archicad 26 Mac中文版 BIM软件

向成本要效益!用友BIP助力车企突破内卷、打赢“降本战”

用友BIP

降本增效

云服务器数据安全保障措施看这里!

行云管家

云计算 云安全 云服务器 云数据

Dash for Mac v7.1.6激活版 提升API文档编写效率

Rose

API文档 Mac破解软件 Dash Mac破解版 Dash下载

智慧燃气:用友BIP资产云如何实现管道资产数智化管理?

用友BIP

资产管理 智慧燃气

有效降低数据库存储成本方案与实践 | 京东云技术团队

京东科技开发者

数据库 存储 数据存储 降本 企业号11月PK榜

提示找不到某些库文件?

矩视智能

深度学习 机器视觉

站群服务器优势

Geek_f19a80

Android下Linux创建进程的姿势(上)

江湖修行

android Linux 进程

中国电信国际数智化人力领先实践

用友BIP

人力资源 数智化领先实践 中国电信

【慢SQL性能优化】 一条SQL的生命周期 | 京东物流技术团队

京东科技开发者

MySQL 数据库 SQL优化 企业号11月PK榜

软件研发流程、架构规范、技术标准、需求过程等全文档

代码人,代码魂

开发文档

数仓实践丨表扫描时过滤行数过多引起的性能瓶颈问题

华为云开发者联盟

数据库 数据仓库 后端 华为云 华为云开发者联盟

苹果最新系统:macOS 14 Sonoma 14.1.1正式版

加油,小妞!

macOS 14 Sonoma Macos最新系统

Java 多线程开发系列 2:创建一个线程

BigBang!

Java多线程

高性价比AWS Lambda无服务体验

查拉图斯特拉说

Lambda 亚马逊云科技 Amazon Lambda

大模型集体失控!南洋理工新型攻击,主流AI无一幸免

Openlab_cosmoplat

人工智能 大模型

为什么说数据安全运维难?有好用的数据安全运维平台吗?

行云管家

数字化 数据安全 数据运维 数据运维安全

亚马逊云科技加速大语言模型的创新应用

三掌柜

亚马逊云科技

文生图大型实践:揭秘百度搜索AIGC绘画工具的背后故事!

百度Geek说

AIGC 文生图 Ai绘图 企业号11月PK榜 百度搜索场景应用

当生成式AI从梦想走近现实,大语言模型未来会取代人类吗?

格致君的planB

人工智能 AI 大语言模型

Stable Diffusion:最先进的文本生成图像模型

3D建模设计

人工智能 Stable Diffusion 稳定扩散 自动纹理

macos智能图片编辑工具:DxO PhotoLab 6 中文版

加油,小妞!

Raw图像处理软件 DxO PhotoLab 6

HarmonyOS NEXT调优工具Smart Perf Host高效使用指南

HarmonyOS开发者

HarmonyOS

大模型产业生态有“成功密码”?百度高管2023进博会最新发声

飞桨PaddlePaddle

深度学习 产业生态 大模型

2018年,20大Python数据科学库都做了哪些更新?_Python_ActiveWizards_InfoQ精选文章