有多少 Python 包?

2024 年 8 月 29 日 | 阅读 6 分钟

现有的 Python 包总数超过200,000个(该数字仅包括存储在官方 Python 包索引 PyPI 上的包)。Python 包为解决科学计算、数据可视化、数据建模等众多领域的棘手问题提供了用户友好且有效的解决方案。

将复杂的事情分解成小块,一次处理一个子任务,这样更好。为了完成任务,程序员会创建和使用模块,这些模块是保存在独立文件中的相关代码的集合。

以下列出了一些最重要的 Python 包

1. NumPy

没有专门的 Python 包,我们可以进行基本的数学运算。但是,如果我们宁愿执行任何类型的复杂数学计算,NumPy 模块将使我们作为程序员的生活更加轻松。

NumPy 提供了工具来协助创建多维数组并对其中包含的数据执行计算。我们可以完成常见的统计程序、求解代数方程等等。

虽然 NumPy 是一个对许多通用编程任务都有用的 Python 包,但如果您想进行机器学习,它尤其重要,因为它是 TensorFlow 等库框架的一部分。

我们可以使用 NumPy 进行

  • 现代数组操作(例如,加、乘、切片、重塑、索引)。
  • 包括数学运算。
  • 随机数生成。
  • 线性代数例程。
  • 例如,傅里叶变换

使用 NumPy,我们可以使用易于理解的 Python 语法和可执行代码的计算能力。难怪 NumPy 被如此庞大的 Python 库和包生态系统所使用。这些包括许多知名包,例如 pandas、Seaborn、SciPy、OpenCV 等等。

2. Pendulum

一个流行的 Python 日期时间库,用于简单的日期时间操作,就是 Pendulum。它提供了更简洁、更用户友好的 API。它使得复杂的日期操作(包括时区)问题更加易于管理,这些问题在原生的 datetime 实例中处理不当。

如果您已经进行了任何 Python 编程,您肯定已经知道如何使用 datetime 模块来控制应用程序中的日期和时间。

虽然 Datetime 非常适合此类基本工作,但 Pendulum Python 模块可以促进更复杂的日期和时间相关脚本。它会自动处理时区,并且更用户友好。

最好的部分是,Pendulum 可以轻松取代 datetime。这意味着我们可以将它用于我们已经创建的日期和时间程序。除了少数例外,无需修改代码,Pendulum 将继续正常运行,同时提供传统 datetime 中不存在的额外功能。它源自常见的 datetime 库,但提供了更优越的功能。因此,我们可以将 Pendulum 的 Datetime 实例添加到已经使用开发的 datetime 类的项目中。

3. Pandas

如果您处理表格、时间序列或矩阵数据,Pandas 是首选的 Python 库。它被认为是一个快速、高效且用户友好的数据分析和修改工具。数据帧是一种特殊的二维数据结构,可以处理数据帧元素。类似于 Excel 电子表格或数据库表,数据帧包含行和列。

Pandas 可用于各种用途,例如

  • 在 SQL 数据库、Excel 和 CSV 文件之间传输和读取数据。
  • 修改和旋转数据集。
  • 切片、索引和子集化数据集。
  • 合并和转换数据。
  • 数据集的连接和合并。

Pandas 是最受欢迎的开源 Python 库,用于数据科学、数据处理和机器学习任务。它构建在独立的 NumPy 包之上,该包支持多维数组。Pandas 是最受欢迎的数据整理工具之一,通常在所有 Python 发行版中都有提供。它与其他各种数据科学模块配合良好。

Pandas 基于两个重要的 Python 库:用于算术计算的 NumPy 和用于数据呈现的 Matplotlib。由于 Pandas,matplotlib 和 NumPy 的许多方法更容易使用,它充当了所有这些库的包装器。例如,pandas 中的 .plot() 函数将多个 matplotlib 函数合并为一个方法,使开发人员能够用少量代码绘制图表。

3. Matplotlib

最流行的数据探索和可视化库是 Matplotlib。它可以用于创建简单的图表,如折线图、直方图、散点图、条形图和饼图。借助此库,您还可以生成动画和交互式可视化。Matplotlib 是所有其他可视化库的基础。

在格式化和装饰图表方面,该库提供了很大的灵活性。标签、网格、图例和其他显示选项都由您决定。但是,我们需要编写大量的代码才能生成复杂且视觉上美观的图表。

4. MoviePy

MoviePy 之于电影,正如 Pillow 之于照片。对于涉及视频文件的常见导入、编辑和导出过程,它提供了多种功能。此外,它还允许我们为视频添加标题并将其旋转 90 度(如果您出于某种原因决定要这样做)。

与 Pillow 一样,MoviePy 的设计目的不是作为复杂数据操作的工具。如果您正在创建一个视频编辑应用程序,您很可能还需要依靠 OpenCV(支持视频和照片)来添加 MoviePy 所缺乏的复杂功能。然而,MoviePy 在处理大多数常见的视频相关 Python 编程任务方面做得很好。

5. Requests

编写发送 HTTP 请求的代码可能很困难,这主要是因为 HTTP 的数据格式不像人们容易理解的那样直接。

Requests Python 模块(口号:“HTTP for Humans”)通过自动化许多您通常需要执行的耗时步骤来解决这个问题,以从任何应用程序提交 HTTP 请求。它消除了对 POST 表单编码或添加查询字符串的要求。此外,它会自动维护与 HTTP 服务器的连接,而无需编写大量代码。

简单来说,对于传输数据的任何应用程序来说,Requests 都是一个必备的包。

该模块的目的是提高 Python HTTP 请求的响应速度和可用性。通过使用 Requests 提供的简单 JSON 技术,我们可以避免手动将查询字符串添加到 URL。

我们可以使用 Requests 修改、检查、批准和配置 HTTP 请求。

  • 添加标头、多部分文件和参数。
  • 自动解压数据
  • 上传时,请同时进行

6. PyQt

尽管之前有所提及,但 PyQt——另一个用于创建 GUI 的 Python 库——是一个严肃的竞争者。它提供了与(您猜对了)Qt 工具包的跨平台绑定。与 Tkinter 相比,它专为要求更高的 GUI 编程而设计。这意味着,如果您正在开发一个用户体验简单的应用程序,PyQT 可能会有点大材小用。

7. Pillow

如果您处理图像数据。它是 Python Imaging Library (PIL) 的克隆,PIL 已发展成为一个用户友好且有效的图像处理工具。

Pillow 允许我们

  • 打开和存储来自各种文件类型(JPEG、PNG、GIF、PDF 等)的图像。
  • 创建图像缩略图。
  • 使用各种图像滤镜(例如 SMOOTH、BLUR、SHARPEN)。
  • 这个图像修改应用程序非常适合初学者,并提供了不错的图像处理能力。

8. PyTest

该包提供了广泛的模块来测试新代码,包括用于库和应用程序的简单功能测试以及大型单元测试。

由于其简单的语法和广泛的功能集,pytest 是程序员中最受欢迎的 Python 包之一。这个测试自动化框架提供了

  • 内置的测试发现支持。
  • 模块化的测试设置夹具(例如,设置数据库连接、URL、输入数据)。
  • (315+ 个外部插件)丰富的插件架构。
  • 内部单元测试。

如果您的 Python 开发项目相当复杂,能够测试新代码至关重要。您可以在 pytest 包提供的几个模块的帮助下实现这一点。无论是简单的单元测试还是更复杂的函数测试,pytest 都可以帮助用户编写。

9. Pywin32

Pywin32 是一个必要的包,尤其对于 Windows Python 开发。借助它对许多原生 Windows API 的访问,我们可以与 Windows 注册表交互、使用 Windows 剪贴板等等。

构建跨平台 Python 应用程序对 Pywin32 的益处不大,但 Windows 开发人员可能会发现他们更喜欢它而不是原生 Windows 工具。