你是否曾经被大量的python模块压垮过?你是否曾经在为一个特定的项目挑选一个时陷入困境?在本文中,我将与您分享一些我认为每个python开发人员都应该熟悉的python模块。我将把这些模块分为四个不同的类别,方便大家查阅。
Web开发
我想讨论的第一类模块是在HTTP请求中处理web开发的模块。Python主要用于后端web开发,因此您可以假定有许多不同的模块可用来使用Python创建企业级网站。
(1) Requests
Python内置模块(urllib和urllib2)用于处理HTTP相关的操作。这两个模块都具有不同的功能集,很多时候需要一起使用它们。使用urllib的主要缺点是它令人困惑,因为在urllib和urllib2中只有很少的方法可用。另一个缺点是文档不是很清楚,即使是一个简单的HTTP请求,我们也需要编写大量代码。为了使这些事情更简单,大多数开发人员更喜欢使用request作为第三方模块。它是一个Apache2许可的HTTP库,由urllib3和httplib支持。
(2) Django
Django与其说是一个模块,不如说是一个高级Python Web框架,但是你仍然需要下载并安装它。它解决了从头构建web应用程序的压力。该框架的主要优点是开发速度快、设计实用、速度快、可扩展性强。你也可以用它来使用其他语言。您可以将它与其他框架连接起来,并且它附带了许多工具和复杂的开发特性,使您能够制作良好的企业级网站。
(3) Flask
Flask也是一个经常与Django竞争的web框架。选择哪一个用于web应用程序完全取决于要构建的项目。Flask的设置要容易得多,也快得多,而且它没有Django自带的所有工具。Django最适合具有大量特性的应用程序,比如身份验证。Flask可以用于基本的简单的web应用程序。
(4) BeautifulSoup
Beautiful soup是一个抓取web的好模块。因此,如果您正在进行web抓取,beautiful soup可以为您完成这一任务。它提供了一些简单的方法和python的习惯用法,用于导航、搜索和修改解析树。它还将传入的文档转换为Unicode和传出的文档转换为UTF-8。您不必考虑编码,除非文档没有指定编码,而Beautiful Soup无法检测编码,在这种情况下,您必须指定原始编码。Beautiful Soup解析你给它的任何东西,并为你做树遍历。
(5) Selenium
Selenium是用来做自动化的网站。这本质上允许你测试你的网站或制作一个机器人将与其他网站互动。所以你可以做一些事情,比如访问HTML字段,移动鼠标光标,访问按钮等等。我以前用过这个,当我在一个虚拟助手上工作时,它可以在网上搜索我要它搜索的信息。它可以进入搜索栏,键入搜索词,然后查看不同的结果,并选择一个进行搜索。该模块在正确使用时是强大的。
数据科学
Python在数据科学中非常流行。它有很多不同的模块,可以让数据科学家的工作更轻松。
(1) NumPy
Numpy是一个在Python中进行数学运算的神奇模块。它能让你处理多维度的数组类对象,以及各种复杂的,三维的,四维的,五维的,数学运算,非常快。它这么快的原因之一是它的很多操作都是用C实现的,这意味着如果你说不使用那个模块而用标准Python实现那些操作,那么使用NumPy会让你的程序更快。
(2) Pandas
Pandas非常适合阅读和处理数据帧和一般的数据。这使得操作数据变得非常容易。它有一个相对陡峭的学习曲线,但它是非常值得的努力。熊猫通过五个步骤处理数据处理和分析:装载、准备、操作、建模和分析。
(3) Matplotlib
Matplotlib用于数据可视化,比如绘制图表,它也适用于机器学习模型。我知道Matplotlib有很多负面消息,但这主要是因为它有两个接口,给新用户带来了困惑。第一种是基于MATLAB并使用基于状态的界面。第二个是面向对象的接口。这两种方法的原因太长了,不能在本文中讨论,但是在使用Matplotlib绘图时,了解这两种方法是非常重要的。
(4) NLTK
NLTK代表自然语言工具包,它用于执行任何数据处理或文本处理。因此,如果你有文本数据,你想删除标点符号或空格,或标记你的数据。
(5) OpenCV
OpenCV是一个功能强大的模块,用于很多不同的事情。它的主要重点是图像和视频数据处理。所以我们可以进行特征检测和描述,物体识别,它还内置了机器学习工具,你可以用它来操作数据或处理图像。
机器学习和人工智能
这一领域吸引了大量关注,尤其是关注科技的发展方向。现在几乎所有的东西都运行一些机器学习代码。自动驾驶汽车,图像识别,个性化搜索,等等
(1) TensorFlow
TensorFlow是目前为止本节中最强大的模块。您可以使用它来做一些强大的事情,而不必真正理解所有的数学是如何工作的(并不是说您不应该对数学感到厌倦)。TensorFlow的好处是它允许你创建神经网络和运行标准的机器学习算法。对于那些热衷于机器学习的人来说,这个模块是多么强大,我怎么强调都不为过。也许我稍后会就此写另一篇深入的文章。
(2) Keras
Keras是一个模块,实际上是TensorFlow的高级API。这个模块通常更适合刚刚开始这个领域的人。Keras允许更容易地访问TensorFlow的一些特性。你几乎可以把它看作是TensorFlow的包装器,它可以让建模和快速完成工作变得更容易。
(3) Pytorch
我没有用过这么多,但我不能把它漏掉。它是Python中的机器学习和人工智能方面的另一个领先模块。Pytorch有两个主要特点。第一种是命令式编程,与符号编程相反。命令式程序在你输入时执行计算。这个功能使程序更加灵活。第二种是动态计算绘图,与静态计算绘图相对。这意味着,在运行时,系统生成的图结构,最适合动态网络。
(4) Scikit-learn
Scikit-learn不像前面提到的模块那么强大。它的重量更轻一些,允许我们处理一些事情,比如聚类算法,线性进展,支持,向量机,等等。你可以在TensorFlow中完成这些工作,但是如果你用一个轻量级的模块来完成任务,却用一个大型的模块来完成,那将会适得其反。
Python的图形用户界面
(1) Kivy
Kivy是一个非常好的模块,它可以构建适用于所有不同平台的应用程序。你构建的任何Kivy应用程序都可以在Linux、Mac、Windows、iOS和Android上运行。
(2) PyQt5
在我看来,这是Python最好的图形用户界面生成器。它有最多的选择和灵活性,你可以用它来做什么。您甚至可以使用CSS样式来设置应用程序的样式。使用此模块构建的一个示例是spyder IDE。如果您想用Python制作更复杂的桌面应用程序,那么应该选择这个模块。
(3) Tkinter
Tkinter是一个较老的模块。它也用于构建图形用户界面。就接口的外观而言,它与PyQt5非常相似,尽管它的能力肯定不如PyQt5。我想说的是,对于初学者和那些想要快速、轻松地做出一些东西的人来说,这有点容易。
原文地址:https://www.toutiao.com/i6947236761227493925/