写点什么

2019 年你不可不知的十大 Python 库

  • 2019-07-26
  • 本文字数:4619 字

    阅读完需:约 15 分钟

2019 年你不可不知的十大 Python 库

在本文中,我们将讨论 Python 中的一些顶级库,开发人员可以使用这些库来解析、清理和表示数据,并在现有应用中实现机器学习。


我们将会介绍以下 10 个库:



Python 是目前最流行,使用最广泛的编程语言之一,已经取代了业界许多编程语言。Python 在开发人员中受欢迎的原因有很多,其中最重要的一个原因就是 Python 有大量可供用户使用的库。Python 的简单性吸引了许多开发人员为机器学习创建新的库。由于有大量的库,Python 在机器学习专家中非常流行。


因此,我即将介绍的第一个库是 TensorFlow。

TensorFlow

TensorFlow 是什么?

如果你目前正在使用 Python 进行机器学习项目,那么你可能已经听说过这个流行的开源库,即 TensorFlow。该库是 Google 与 Brain Team 合作开发的。Google 的每一个机器学习应用几乎都有 TensorFlow 的影子。


TensorFlow 的工作方式类似于一个计算库,用于编写设计大量张量运算的新算法。由于神经网络可以很容易地表示为计算图,因此它们可以用 TensorFlow 作为对张量(Tensor)的一些列操作来实现。此外,张量是表述数据的 N 维矩阵。

TensorFlow 的特点

TensorFlow 针对速度进行了优化,并利用 XLA 等技术实现快速线性代数运算。


1.响应式构造:使用 TensorFlow,我们可以轻松地将计算图的每一部分进行可视化,在使用 NumPy 或 SciKit 时并没有这个选项。


2.灵活性:TensorFlow 的一个非常重要的特性是,它的操作非常灵活。这意味着它实现了模块化,对于你想要使其独立的部分,它可以提供这一选项。


3.易于训练:对于分布式计算,它可以很容易地在 CPU 上进行训练,也可以在 GPU 上进行训练。


4.并行化神经网络训练:TensorFlow 提供了管道。从某种意义上说,你可以训练多个神经网络和多个 GPU,这使得模型在大型系统上非常高效。


5.大型社区:毋庸讳言,因为 TensorFlow 是由 Google 开发的,所以有一大群软件工程师在不断改进 TensorFlow 的稳定性。


6.开源:这个机器学习库最好的地方在于它是开源的,所以只要有互联网,任何人都可以使用它。

TensorFlow 在哪里使用?

实际上你每天都在使用 TensorFlow,但像 Google 语音搜索或 Google 相册这样的应用却是间接的。这些应用是使用这个库进行开发的。


在 TensorFlow 中创建的所有库都是用 C 和 C++ 编写的。不过,它还有一个复杂的 Python 前端。你的 Python 代码将会被编译,然后在使用 C 和 C++ 构建的 TensorFlow 分布式执行引擎上执行。


TensorFlow 的应用数量实际上是无限的,这就是 TensorFlow 的美妙之处。

Scikit-Learn

Scikit-Learn 是什么?

Scikit-Learn 是一个与 NumPy 和 SciPy 相关的 Python 库。它被认为是处理复杂数据的最佳库之一。这个库正在进行大量更改。其中一个更改是交叉验证功能,提供了使用多个度量的能力。许多训练方法,如逻辑回归和最近邻方法,都得到了一些改进。

Scikit-Learn 的特点

1.交叉验证:有多种方法可以检验监督模型对不可见数据的准确性。


2.无监督学习算法:Scikit-Learn 提供了大量的算法,从聚类、因子分析和主成分分析到无监督神经网络。


3.特征提取:用于从图像和文本中提取特征(例如词袋)。

Scikit-Learn 在哪里使用?

它包含许多用于实现标准机器学习和数据挖掘任务的算法,如降维、分类、回归、聚类和模型选择。

NumPy

NumPy 是什么?

NumPy 被认为是 Python 中最受欢迎的机器学习库之一。


TensorFlow 和其他库在内部使用 NumPy 在张量上执行多个操作。数组接口是 NumPy 最好也是最重要的特性。

NumPy 的特点

1.交互性:NumPy 交互性强,易于使用。


2.数学:使复杂的数学实现变得非常简单。


3.直观性:使编码和概念的掌握变得非常容易。


4.大量的交互:得益于广泛的使用,因此有大量的开源贡献。

NumPy 在哪里使用?

NumPy 的接口可用于将图像、声波和其他二进制原始流表达为 N 维数组。为实现这个用于机器学习的库,了解 NumPy 对于全栈开发人员来说很重要。

Keras

Keras 是什么?

Keras 被认为是 Python 中最酷的机器学习库之一。它提供了一种更简单的机制来表达神经网络。Keras 还为编译模型、处理数据集、图形可视化等提供了一些最佳实用程序。


在后端,Keras 在内部使用 Theano 或 TensorFlow,也可以使用一些最流行的神经网络,如 CNTK。与其他机器学习库比较,Keras 的速度相对较慢。因为它是通过使用后端架构创建计算图,然后利用它来执行操作的。不过,Keras 的所有模型都是可移植的。

Keras 的特点

1.Keras 在 CPU 和 GPU 上都能顺利运行。


2.Keras 支持几乎所有的神经网络模型,包括完全连接的、卷积的、池化的、递归的、嵌入的等等。此外,这些模型还可以组合起来构建更为复杂的模型。


3.Keras 在本质上是模块化的,具有难以置信的表现力、灵活性,并易于创新研究。


4.Keras 是一个完全基于 Python 的框架,可以方便地进行调试和探索。

Keras 在哪里使用?

你已经在不断地与 Keras 开发的功能进行交互:它在 Netflix、Uber、Yelp、Instacart、Zocdoc、Square 等其他许多公司都有应用。Keras 在那些将深度学习作为产品核心的初创公司中特别受欢迎,同时也是深度学习研究人员的最爱。大型科学组织,特别是 CERN(欧洲核子研究中心)和 NASA(美国国家航空航天局)的研究人员也采用了 Keras。


Keras 包含许多常用的神经网络构建块的实现,例如层、目标、激活函数、优化器和一系列工具,使图像和文本数据的处理变得更加容易。


此外,Keras 还提供了许多预处理的数据集和预训练模型,如 MNIST、VGG、Inception、SqueezeNet、ResNet 等等。

PyTorch

PyTorch 是什么?

PyTorch 是最大的机器学习库,它允许开发人员利用 GPU 的加速执行张量计算,创建动态计算图,并自动计算梯度。除此之外,PyTorch 还提供了丰富的 API,用于解决与神经网络相关的应用问题。


这个机器学习库是基于 Torch 的,Torch 是一个用 C 语言实现的开源机器学习库,在 Lua 中有个包装器。这个用 Python 编写的机器学习库是 2017 年推出的,自推出以来,吸引了越来越多的机器学习开发人员。

PyTorch 的特点

1.混合前端:新的混合前端在 Eager 模式(动态图模式)下提供了易用性和灵活性,同时在 C++ 运行时环境中无缝过渡到图形模式,以实现速度、优化和功能。


2.分布式训练:通过利用 Python 和 C++ 提供的异步执行集合操作和对等通信的本地支持,优化研究和生产中的性能。


3.Python 优先:PyTorch 并非绑定到单一 C++ 框架中的 Python。它是为了深入集成到 Python 中而构建的,因此它可以与流行的库和包(如 Cython 和 Numba 等)一起使用。


4.库和工具:一个由研究人员和开发人员组成的活跃社区,建立了一个丰富的工具和库生态系统,用于扩展 PyTorch ,并支持从计算机视觉到强化学习等领域的开发。

PyTorch 在哪里使用?

PyTorch 主要用于自然语言处理等应用。PyTorch 主要是由 Facebook 的人工智能研究小组开发的。Uber 的概率编程“Pyro”软件就是建立在这个基础上的。PyTorch 在很多方面都超过了 TensorFlow,最近得到了很多关注。

LightGBM

LightGBM 是什么

梯度提升(Gradient Boosting)是最好的、最流行的机器学习库之一,它通过使用重新定义的基本模型和决策树来帮助开发人员构建新的算法。因此,有一些专门的库是为快速有效地实现这种方法而设计的。


这些库分别是 LightGBM、XGBoost 和 CatBoost。所有这些库都是帮助解决常见问题的竞争对手,可以以几乎相似的方式加以利用。

LightGBM 的特点

1.计算速度快,生产效率高。


2.直观,易于使用。


3.比许多其他深度学习库有更快的训练。


4.在考虑 NaN 值和其他规范值时不会产生错误。

LightGBM 在哪里使用?

这个库提供了高度可扩展、优化和快速的梯度提升实现,这使得它在机器学习开发人员中备受欢迎。因为大多数机器学习全栈开发人员是通过使用这些算法在机器学习竞赛中获胜的。

Eli5

Eli5 是什么?

大多数情况下,机器学习模型的预测结果并不准确,而内置 Python 的 Eli5 机器学习库有助于克服这一挑战。它结合了可视化和调试所有的机器学习模型,并跟踪算法的所有工作步骤。

Eli5 的特点

Eli5 支持 XGBoost、lighting、scikit-learn 和 sklearn-crfsuite 库。上面提到的所有库都可以用于执行不同的任务。

Eli5 在哪里使用?

  • 需要在短时间内进行大量计算的数学应用

  • 在与其他 Python 包存在依赖关系的情况下,Eli5 扮演着至关重要的角色。

  • 遗留应用和在各个领域实施较新的方法

SciPy

SciPy 是什么?

SciPy 是一个面向应用程序开发人员和工程师的机器学习库。你需要了解 SciPy 库和 SciPy 栈之间的区别。SciPy 库包含用于优化、线性代数、积分和统计的模块。

SciPy 的特点

SciPy 库的主要特点是使用 NumPy 开发,其数组最大限度地利用了 NumPy。此外,SciPy 使用其特定子模块提供了所有高效的数值例程,比如优化、数值积分和许多其他例程。


所有 SciPy 子模块中的所有函数都有良好的文档说明。

SciPy 在哪里使用?

SciPy 是一个使用 NumPy 求解数学函数的库。SciPy 使用 NumPy 数组作为基本数据结构,并附带用于科学编程中各种常用任务的模块,包括线性代数、积分(微积分)、常微分方程求解和信号处理等任务,都可以通过 SciPy 轻松处理。

Theano

Theano 是什么?

Theano 是 Python 中用于计算多维数组的计算框架机器学习库。Theano 的工作方式与 TensorFlow 类似,但效率不如 TensorFlow。因为它不能适应生产环境。


此外,还可以在与 TensorFlow 类似的分布式或并行环境中使用 Theano。

Theano 的特点

1.与 NumPy 紧密集成:能够在 Theano 编译的函数中完全使用 NumPy 数组。


2.GPU 的透明使用:执行数据密集型计算要比 CPU 上快得多。


3.高效的符号微分:Theano 为具有一个或多个输入的函数求导。


4.速度和稳定性的优化:即使 x 非常小,也能获得 log(1+x) 的正确答案。这只是证明 Theano 稳定性的一个例子。


5.动态 C 代码生成:计算表达式的速度比以往都快,从而极大提高效率。


6.广泛的单元测试和自我验证:检测和诊断模型中的多种类型的错误和歧义。

Theano 在哪里使用?

Theano 表达式的实际语法是符号化的,这可能会让习惯正常软件开发的初学者感到不适。具体来说,表达式是以抽象的方式进行定义、编译的,然后实际用于计算。


Theano 是专门为用于深度学习的大型神经网络算法的计算类型而设计的。它是最早的类库之一(2007 年开始开发),被认为是深度学习研究和开发的行业标准。Theano 目前被用于多个神经网络项目,随着时间的推移,Theano 的普及率也在不断提高。

Pandas

Pandas 是什么?

Pandas 是 Python 中的一个机器学习库,它提供高级的数据结构和各种各样的分析工具。这个库最大的特性之一是能够使用一个或两个命令转换复杂的数据操作。Pandas 有很多内置的分组、组合数据、过滤以及时间序列功能的方法。所有这些方法都有出色的速度指示器。

Pandas 的特点

Pandas 使操作数据的过程变得更容易。对重新索引、迭代、排序、聚合、连接和可视化等操作的支持是 Pandas 的亮点之一。

Pandas 在哪里使用?

目前,Pandas 库的发行版本较少,其中包括数百个新功能、bug 修复、增强和 API 中的更改。Pandas 的改进在于它能够对数据进行分组和排序,为应用方法选择最适合的输出,并为执行自定义类型操作提供支持。


在其他事项中,当涉及到使用 Pandas 时,数据分析是一大亮点。但是,当与其他库和工具一起使用时,Pandas 确保了高度的功能性和良好的灵活性。


作者介绍:


Sayantini Deb,研究分析师,供职于 Edureka。


原文链接:


Top 10 Python Libraries You Must Know in 2019


公众号推荐:

AGI 概念引发热议。那么 AGI 究竟是什么?技术架构来看又包括哪些?AI Agent 如何助力人工智能走向 AGI 时代?现阶段营销、金融、教育、零售、企服等行业场景下,AGI应用程度如何?有哪些典型应用案例了吗?以上问题的回答尽在《中国AGI市场发展研究报告 2024》,欢迎大家扫码关注「AI前线」公众号,回复「AGI」领取。

2019-07-26 15:499570
用户头像

发布了 370 篇内容, 共 173.9 次阅读, 收获喜欢 943 次。

关注

评论 2 条评论

发布
用户头像
很实用,为我们指明了方向,可以按图索骥了
2019-07-26 18:02
回复
感谢您的关注!
2019-07-30 16:13
回复
没有更多了
发现更多内容

穿越周期,天翼云IaaS+PaaS全年市场份额跃居中国公有云市场第三!

新消费日报

Baidu Comate:“AI +”让软件研发更高效更安全

百度安全

电商新篇章:深入解析亚马逊国际关键字搜索商品API返回值

技术冰糖葫芦

API Explorer API boy api 货币化 pinduoduo API

「软件测试面试题解析」限时优惠,助你高效备战,拿下心仪职位

测试人

软件测试

Altair 宣布收购 Cambridge Semantics,为新一代企业Data Fabric和生成式 AI 赋能

新消费日报

“星光不问赶路人,时光不负有心人”

开放签开源电子签章

电子合同 五一 电子签章

一本书了解AI的下一个风口:AI Agent

博文视点Broadview

「软件测试面试题集解析课」限时优惠,助你高效备战,一举拿下心仪职位

霍格沃兹测试开发学社

记录工作以来遇到的最离谱的一个Bug

京东零售技术

Java 后端 企业号 4 月 PK 榜

一次性讲明白,如何搞定一个可以支持多芯混合训练的 AI 集群

百度Geek说

企业号 4 月 PK 榜 AI集群

电商新纪元:亚马逊国际商品详情API返回值的重要性

技术冰糖葫芦

API boy api 货币化 pinduoduo API

万界星空科技MES系统中的业务过程管理流程

万界星空科技

生产管理系统 mes 车间管理

QCA9880 vs. QCN9224: Exploring the Differences in Qualcomm's Wireless Chipsets

wifi6-yiyi

wifi

软件测试学习笔记丨Bug处理流程

测试人

软件测试

Linux设备驱动系列(八)——ioctl系统调用

Linux内核拾遗

Linux Kenel 内核开发 设备驱动

LED显示屏的节能效果

Dylan

娱乐 环保 LED显示屏 全彩LED显示屏 led显示屏厂家

HashMap 原理分析

footmanff

hashmap HashMap底层原理 hashmap源码

杭州悦数与伟仕佳杰达成战略合作,共绘图数据库市场新蓝图

悦数图数据库

图数据库 知识图

几个容器网络问题实战解析

鲸品堂

容器 抓包分析

想开发一款带有视频通话/共享屏幕功能的产品?那WebRTC是你必须要知道的!

编程的平行世界

WebRTC

2024腾讯广告代理怎么申请 全媒体信息流广告代理好做吗

陈老师讲创业

一键自动化博客发布工具,用过的人都说好(简书篇)

程序那些事

程序那些事 工具技巧

【Android】Binder的Oneway拦截

iofomo

android 源码剖析 拦截器 binder

项目中资源利用率的计算公式和方法

易成管理学

项目管理 资源利用

MES管理系统在人工智能方面的应用

万界星空科技

人工智能 智能工厂 mes 万界星空科技

软件测试学习笔记丨业务架构分析思路(业务架构分析)

测试人

软件测试

Advanced RAG 05:探讨基于文本内在语义信息的数据分块方法

Baihai IDP

人工智能 程序员 AI rag 检索增强生成

国内独家|阿里云瑶池发布ClickHouse企业版:云原生Serverless新体验

阿里云瑶池数据库

数据库 云计算 阿里云 Clickhouse

揭秘一个小本创业项目-互联网全媒体广告行业代理,利润超出你的认知!

互联网创业说

碳课堂|快速了解标准要点:ISO 14064-1

AMT企源

碳中和 碳达峰 碳管理

2019 年你不可不知的十大 Python 库_编程语言_Sayantini Deb_InfoQ精选文章