前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对于Python编程者最有用和最常见的模块

对于Python编程者最有用和最常见的模块

作者头像
HuangWeiAI
发布2021-04-21 17:07:36
1.1K0
发布2021-04-21 17:07:36
举报
文章被收录于专栏:浊酒清味浊酒清味

前言

你是否曾经被大量的python模块压垮过?你是否曾经在为一个特定的项目挑选一个时陷入困境?在本文中,我将与您分享一些我认为每个python开发人员都应该熟悉的python模块。我将把这些模块分为四个不同的类别,方便大家查阅。

Web开发

我想讨论的第一类模块是在HTTP请求中处理web开发的模块。Python主要用于后端web开发,因此您可以假定有许多不同的模块可用来使用Python创建企业级网站。

Requests

Python内置模块(urllib和urllib2)用于处理HTTP相关的操作。这两个模块都具有不同的功能集,很多时候需要一起使用它们。使用urllib的主要缺点是它令人困惑,因为在urllib和urllib2中只有很少的方法可用。另一个缺点是文档不是很清楚,即使是一个简单的HTTP请求,我们也需要编写大量代码。为了使这些事情更简单,大多数开发人员更喜欢使用request作为第三方模块。它是一个Apache2许可的HTTP库,由urllib3和httplib支持。

Django

Django与其说是一个模块,不如说是一个高级Python Web框架,但是你仍然需要下载并安装它。它解决了从头构建web应用程序的压力。该框架的主要优点是开发速度快、设计实用、速度快、可扩展性强。你也可以用它来使用其他语言。您可以将它与其他框架连接起来,并且它附带了许多工具和复杂的开发特性,使您能够制作良好的企业级网站。

Flask

Flask也是一个经常与Django竞争的web框架。选择哪一个用于web应用程序完全取决于要构建的项目。Flask的设置要容易得多,也快得多,而且它没有Django自带的所有工具。Django最适合具有大量特性的应用程序,比如身份验证。Flask可以用于基本的简单的web应用程序。

BeautifulSoup

Beautiful soup是一个抓取web的好模块。因此,如果您正在进行web抓取,beautiful soup可以为您完成这一任务。它提供了一些简单的方法和python的习惯用法,用于导航、搜索和修改解析树。它还将传入的文档转换为Unicode和传出的文档转换为UTF-8。您不必考虑编码,除非文档没有指定编码,而Beautiful Soup无法检测编码,在这种情况下,您必须指定原始编码。Beautiful Soup解析你给它的任何东西,并为你做树遍历。

Selenium

Selenium是用来做自动化的网站。这本质上允许你测试你的网站或制作一个机器人将与其他网站互动。所以你可以做一些事情,比如访问HTML字段,移动鼠标光标,访问按钮等等。我以前用过这个,当我在一个虚拟助手上工作时,它可以在网上搜索我要它搜索的信息。它可以进入搜索栏,键入搜索词,然后查看不同的结果,并选择一个进行搜索。该模块在正确使用时是强大的。

数据科学

Python在数据科学中非常流行。它有很多不同的模块,可以让数据科学家的工作更轻松。

NumPy

Numpy是一个在Python中进行数学运算的神奇模块。它能让你处理多维度的数组类对象,以及各种复杂的,三维的,四维的,五维的,数学运算,非常快。它这么快的原因之一是它的很多操作都是用C实现的,这意味着如果你说不使用那个模块而用标准Python实现那些操作,那么使用NumPy会让你的程序更快。

Pandas

Pandas非常适合阅读和处理数据帧和一般的数据。这使得操作数据变得非常容易。它有一个相对陡峭的学习曲线,但它是非常值得的努力。熊猫通过五个步骤处理数据处理和分析:装载、准备、操作、建模和分析。

Matplotlib

Matplotlib用于数据可视化,比如绘制图表,它也适用于机器学习模型。我知道Matplotlib有很多负面消息,但这主要是因为它有两个接口,给新用户带来了困惑。第一种是基于MATLAB并使用基于状态的界面。第二个是面向对象的接口。这两种方法的原因太长了,不能在本文中讨论,但是在使用Matplotlib绘图时,了解这两种方法是非常重要的。

NLTK

NLTK代表自然语言工具包,它用于执行任何数据处理或文本处理。因此,如果你有文本数据,你想删除标点符号或空格,或标记你的数据。

OpenCV

OpenCV是一个功能强大的模块,用于很多不同的事情。它的主要重点是图像和视频数据处理。所以我们可以进行特征检测和描述,物体识别,它还内置了机器学习工具,你可以用它来操作数据或处理图像。

机器学习和人工智能

这一领域吸引了大量关注,尤其是关注科技的发展方向。现在几乎所有的东西都运行一些机器学习代码。自动驾驶汽车,图像识别,个性化搜索,等等

TensorFlow

TensorFlow是目前为止本节中最强大的模块。您可以使用它来做一些强大的事情,而不必真正理解所有的数学是如何工作的(并不是说您不应该对数学感到厌倦)。TensorFlow的好处是它允许你创建神经网络和运行标准的机器学习算法。对于那些热衷于机器学习的人来说,这个模块是多么强大,我怎么强调都不为过。也许我稍后会就此写另一篇深入的文章。

Keras

Keras是一个模块,实际上是TensorFlow的高级API。这个模块通常更适合刚刚开始这个领域的人。Keras允许更容易地访问TensorFlow的一些特性。你几乎可以把它看作是TensorFlow的包装器,它可以让建模和快速完成工作变得更容易。

Pytorch

我没有用过这么多,但我不能把它漏掉。它是Python中的机器学习和人工智能方面的另一个领先模块。Pytorch有两个主要特点。第一种是命令式编程,与符号编程相反。命令式程序在你输入时执行计算。这个功能使程序更加灵活。第二种是动态计算绘图,与静态计算绘图相对。这意味着,在运行时,系统生成的图结构,最适合动态网络。

Scikit-learn

Scikit-learn不像前面提到的模块那么强大。它的重量更轻一些,允许我们处理一些事情,比如聚类算法,线性进展,支持,向量机,等等。你可以在TensorFlow中完成这些工作,但是如果你用一个轻量级的模块来完成任务,却用一个大型的模块来完成,那将会适得其反。

Python的图形用户界面

Kivy

Kivy是一个非常好的模块,它可以构建适用于所有不同平台的应用程序。你构建的任何Kivy应用程序都可以在Linux、Mac、Windows、iOS和Android上运行。

PyQt5

在我看来,这是Python最好的图形用户界面生成器。它有最多的选择和灵活性,你可以用它来做什么。您甚至可以使用CSS样式来设置应用程序的样式。使用此模块构建的一个示例是spyder IDE。如果您想用Python制作更复杂的桌面应用程序,那么应该选择这个模块。

Tkinter

Tkinter是一个较老的模块。它也用于构建图形用户界面。就接口的外观而言,它与PyQt5非常相似,尽管它的能力肯定不如PyQt5。我想说的是,对于初学者和那些想要快速、轻松地做出一些东西的人来说,这有点容易。

·END·

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python学会 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Web开发
    • Requests
      • Django
        • Flask
          • BeautifulSoup
            • Selenium
            • 数据科学
              • NumPy
                • Pandas
                  • Matplotlib
                    • NLTK
                      • OpenCV
                      • 机器学习和人工智能
                        • TensorFlow
                          • Keras
                            • Pytorch
                              • Scikit-learn
                              • Python的图形用户界面
                                • Kivy
                                  • PyQt5
                                    • Tkinter
                                    相关产品与服务
                                    TI-ONE 训练平台
                                    TI-ONE 训练平台(以下简称TI-ONE)是为 AI 工程师打造的一站式机器学习平台,为用户提供从数据接入、模型训练、模型管理到模型服务的全流程开发支持。TI-ONE 支持多种训练方式和算法框架,满足不同 AI 应用场景的需求。
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档