2022 年你应该知道的 5 个 Python 模块

已发表: 2021-01-08

Python 是一种在全世界赢得人心的编程语言。 从编码社区到数据科学社区,Python 绝对是所有人的最爱。 它受欢迎的原因是 Python 加载了广泛的库和模块,使开发成为一项轻松的任务。

虽然我们之前已经详细讨论了 Python 库,但今天,我们将专注于 Python 模块。

目录

什么是 Python 模块?

简单来说,Python 模块是一个 Python 对象,由任意命名的属性组成,可用于绑定和引用。 本质上,模块可以定义函数、类和变量。 模块可帮助您以逻辑方式组织 Python 代码。 通过将相关代码分组到模块中,可以使 Python 代码更易于使用和理解。

在 Python 中,您可以通过三种方式定义模块:

  • 你可以用 Python 编写一个模块。
  • 您可以用 C 编写模块并在运行时动态加载它。
  • 您可以使用解释器中固有的内置 Python 模块。

什么是模块搜索路径?

搜索路径是指解释器在导入模块之前搜索的目录列表。 假设您要执行以下语句:

进口模组

当解释器执行此语句时,它将在从多个来源组装的目录列表中搜索 mod.py,包括:

  • 您从中运行输入脚本的目录或当前目录(假设解释器以交互方式运行)。
  • 如果设置了PYTHONPATH环境变量,它将搜索其中包含的目录列表。
  • 在安装 Python 时配置的安装相关目录的列表。

您可以使用从 sys 模块进一步生成的 Python 变量 sys.path 访问生成的搜索路径:

>>> 导入系统

>>> 系统路径

[”, 'C:\\Users\\john\\Documents\\Python\\doc', 'C:\\Python36\\Lib\\idlelib',

'C:\\Python36\\python36.zip', 'C:\\Python36\\DLLs', 'C:\\Python36\\lib',

'C:\\Python36', 'C:\\Python36\\lib\\site-packages']

导入模块后,您可以使用模块的__file__属性确定其位置,如下所示:

>>> 导入模组

>>> mod.__file__

'C:\\Users\\john\\mod.py'

>>> 重新导入

>>> re.__file__

'C:\\Python36\\lib\\re.py'

但是,请记住, __file__的目录部分应该是包含在 sys.path 中的目录。

现在您已经了解了 Python 模块的本质,让我们来看看一些最好的 Python 模块。

顶级 Python 模块

1.“导入”声明

通过在一个 Python 源文件中执行 import 语句,您可以将任何 Python 源文件用作模块。 import语句的语法是:

导入模块1[,模块2[,…模块N]

当您运行导入语句时,解释器将导入提供的模块(如果它存在于搜索路径中)。 例如,如果您希望导入模块 calc.py,您必须编写并执行以下命令:

# 导入模块 calc.py

导入计算

打印添加(10,2)

成功执行此命令后,输出将如下所示:

12

关于 Python 模块要记住的重要一点是,无论您导入模块多少次,它都只会加载一次。 这有助于防止在多次导入的情况下重复执行模块。

2.“来自……进口”声明

在 Python 中,“from...import”语句允许您从模块中导入特定属性。 以下是“from...import”语句的示例:

从模组名导入 *

# 导入 sqrt() 和阶乘

# 模块数学

从数学导入 sqrt,阶乘

# 如果我们只是做“导入数学”,那么

# math.sqrt(16) 和 math.factorial()

# 是必要的。

打印 sqrt(16)

打印阶乘(6)

运行此代码,您将获得:

4.0

720

使用此模块,您可以将特定模块中包含的所有项目导入当前命名空间。

3. “dir()”函数

在 Python 中,dir() 是一个内置函数,它返回一个排序的字符串列表,其中包含一个模块中定义的所有模块、函数和变量的名称。 下面给出了 dir() 函数的示例:

#!/usr/bin/python

# 导入内置模块随机

随机导入

打印目录(数学)

执行时,此代码将返回以下结果:

['BPF','LOG4','NV_MAGICCONST','RECIP_BPF','随机',

'SG_MAGICCONST'、'SystemRandom'、'TWOPI'、'WichmannHill'、

'_BuiltinMethodType','_MethodType','__all__',

'__builtins__'、'__doc__'、'__file__'、'__name__'、

'__package__'、'_acos'、'_ceil'、'_cos'、'_e'、'_exp'、

'_hashlib','_hexlify','_inst','_log','_pi','_random',

'_sin','_sqrt','_test','_test_generator','_urandom',

'_warn','betavariate','选择','除法',

'expovariate','gammavariate','gauss','getrandbits',

'getstate'、'jumpahead'、'lognormvariate'、'normalvariate'、

'帕累托变量','randint','随机','randrange',

'样本','种子','setstate','洗牌','三角形',

'uniform', 'vonmisesvariate', 'weibullvariate']

在上面给出的输出中,特殊字符串变量__file__指向加载模块的文件名,而__name__成为模块的名称。

4. globals() 和 locals() 函数

您可以使用 globals() 和 locals() 函数在全局和本地命名空间中返回模块名称。 但是,这取决于您调用名称的位置。 如果您在另一个函数中调用 globals() 函数,它将返回可以从该特定函数全局访问的所有名称。 相反,如果从函数内部调用 locals() 函数,它将生成您可以从特定函数本地访问的所有名称。

5. 通常,当您将模块导入脚本时,位于模块顶层部分的代码只会执行一次。 在这种情况下,如果您希望重新执行模块中的顶级代码,则 reload() 函数是首选函数。 此功能允许您重新导入以前导入的模块。

reload() 函数的语法如下:

重新加载(模块名称)

在语法中, module_name指的是您希望重新加载的模块的名称——它与包含模块名称的字符串无关。 例如,如果要重新加载 hello 模块,则必须编写:

重新加载(你好)

结论

在 Python 中,包和模块是相互关联的。 Python 包使用点表示法促进模块命名空间的层次结构。 Python 包可以防止模块名称之间的冲突(重叠),而 Python 模块可以防止全局变量名称之间的冲突。

如果您想了解数据科学,请查看 IIIT-B 和 upGrad 的数据科学 PG 文凭,该文凭专为在职专业人士而设,提供 10 多个案例研究和项目、实用的实践研讨会、与行业专家的指导、1-与行业导师面对面交流,400 多个小时的学习和顶级公司的工作协助。

什么是 Python Anaconda,为什么如此受欢迎?

Anaconda 是 Python 和 R 的包管理器。它被认为是最受数据科学爱好者欢迎的平台之一。 以下是使 Anaconda 领先于竞争对手的一些原因。 其强大的分发系统有助于管理具有 300 多个库的 Python 等语言。 它是一个免费的开源平台。 它的开源社区有许多合格的开发人员,他们不断地帮助新手。 它具有各种基于 AI 和 ML 的工具,可以轻松地从不同来源提取数据。 Anaconda 拥有超过 1500 个 Python 和 R 数据科学包,被认为是测试和训练模型的行业标准。

列举一些最流行的用于图像处理的 Python 库。

Python 是最适合图像处理的语言,因为它提供了功能丰富的库。 以下是一些使图像处理非常方便的顶级 Python 库。 OpenCV 是用于视觉任务(例如图像处理以及对象和人脸检测)的最流行和广泛使用的 Python 库。 它非常快速和高效,因为它最初是用 C++ 编写的。 如果没有 Sci-Kit Image,关于 Python 图像处理库的讨论是不完整的。 它是一个简单直接的库,可用于任何计算机视觉任务。 SciPy 主要用于数学计算,但它也能够执行图像处理。 人脸检测、卷积和图像分割是 SciPy 提供的一些功能。

为什么大多数数据科学家更喜欢 Python 而不是其他语言?

有许多语言,如 R 和 Julia,可用于数据科学,但由于多种原因,Python 被认为是最适合它的语言。 其中一些原因如下所述: Python 比 Scala 和 R 等其他语言更具可扩展性。它的可扩展性在于它为程序员提供的灵活性。 它拥有种类繁多的数据科学库,例如 NumPy、Pandas 和 Scikit-learn,这使其比其他语言更具优势。 庞大的 Python 程序员社区不断为该语言做出贡献,并帮助新手与 Python 一起成长。