2022 年你应该知道的 5 个 Python 模块
已发表: 2021-01-08Python 是一种在全世界赢得人心的编程语言。 从编码社区到数据科学社区,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 一起成长。