用于数据工程师 | NLP 的最佳 Python 流行库

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

在本教程中,我们将学习数据工程师的 Python 流行库。这些库使数据工程师的工作变得轻松。众所周知,Python 是机器学习最流行的语言。我们将列出这些流行库及其代码。

Python 的六大库

1. Pendulum

Pendulum 是一个用于在 Python 应用程序中处理日期和时间的有用且方便的库。尽管还有许多其他库可以处理时间和日期,但与它们相比,Pendulum 易于使用。它提供了比标准 Python datetime 模块更清晰、更直观的语法,并提供了额外的功能,例如时区支持、直观且强大的解析、更简单的间隔创建和本地化。Pendulum 可以处理各种用例,从简单的日期/时间操作到更复杂的场景,例如调度和重复事件。

它提供了简单、人性化的 API 来格式化日期和时间。现在,让我们安装这个库。

现在,让我们理解下面的例子。

示例 -

输出

datetime object: 2023-02-17T16:37:49.251059+00:00
Converted datetime object: 2023-02-17T17:37:49.251059+01:00
Specific datetime object: 2022-03-15T12:30:00-04:00
Difference: 42

解释 -

在上面的代码中,我们首先为 UTC 时区的当前日期和时间创建一个新的 datetime 对象。然后我们将此对象转换为“欧洲/巴黎”时区并打印结果。接下来,我们为特定的日期和时间创建一个新的 datetime 对象,并打印结果。最后,我们计算两个 datetime 对象之间相差的天数并打印结果。此代码仅演示了 Pendulum 库的众多功能中的一小部分。

2. Humanize

Humanize 库提供了易于阅读的数字、字符串格式和日期,以人类可读的方式显示。它提供了各种函数,有助于将复杂数据转换为更易于理解的形式,特别是用于显示目的。例如,它可以将日期转换为相对时间表示,例如“3 小时前”或“下周一”,或者将大数字转换为更易读的格式,例如“1.2M”而不是“1200000”。Humanize 库还可以以更人性化的方式格式化文件大小、持续时间和其他类型的数据。我们可以使用以下命令安装它。

让我们理解下面的例子。

示例 -

输出

Current Date and Time: now
500,000,000
Duration  a day
File size 1.1 GB

解释 -

在上面的代码中,我们首先导入 Humanize 库和 Python datetime 模块。然后我们使用 naturaltime() 函数将当前日期和时间转换为人类可读的字符串,该字符串表示相对于当前时间的时间,例如“刚刚”或“2 天前”。我们还使用 intcomma() 函数将大数字转换为人类可读的字符串,并用逗号分隔千位、百万位、十亿位等。我们使用 naturaldelta 函数将持续时间转换为更可读的形式,例如“1 天”或“2 小时”。最后,我们使用 naturalsize() 函数将文件大小(以字节为单位)转换为更可读的格式,例如“1 GB”或“2 MB”。

3. pgeocode

pgeocode 库对于需要地理信息或地图的应用程序非常有用,例如物流、供应链管理和在线零售。它是一个 Python 库,用于高性能离线查询 GPS 坐标、邮政编码/ZIP 码和国家/地区。它为 Python 用户提供了一个接口,用于查询和检索 Geonames 地理数据库中的数据,Geonames 是一个全面的地理位置及其相应数据(例如国家/地区、区域、邮政编码等)的数据集。

使用 pgeocode 库,您可以根据 GPS 坐标、邮政编码或国家/地区名称获取特定位置或位置列表的信息。该库允许您访问大量与位置相关的特征,包括纬度和经度、城市、州或地区、国家/地区名称、邮政编码和时区。

我们可以使用以下命令安装它。

示例 -

输出

postal_code          10001
country_code            US
place_name        New York
state_name        New York
state_code              NY
county_name       New York
county_code           61.0
community_name         NaN
community_code         NaN
latitude           40.7484
longitude         -73.9967
accuracy               4.0
Name: 0, dtype: object

说明

在上面的代码中,我们首先导入 pgeocode 库并为美国创建一个 Nominatim 类实例,使用 us 参数。然后我们使用 query_postal_code() 方法根据邮政编码 10001 查询位置信息。该方法返回一个包含位置信息的 pandas Series 对象,包括城市、州、纬度和经度等。最后,我们使用 print 函数显示位置信息。

请注意,您可能需要安装 pandas 库作为使用 pgeocode 的先决条件。此外,您可以使用 Nominatim 类的其他查询方法根据国家/地区、州和城市名称以及 GPS 坐标获取位置信息。

4. ftfy

有时数据中存在的外国语言无法正确显示。这个术语被称为 乱码 (Mojibake),它用于描述由于编码或解码问题而出现的扭曲或混乱的文本。ftfy (fix text for you) 库可以解决此类问题。它在处理从网络抓取或使用非标准方法编码的文本数据时特别有用。它可用于各种应用程序,包括数据清理、文本分析和自然语言处理。它还包括用于清理因自动文本校正或格式化而损坏的文本的工具,例如意外大写或小写字母的文本。我们可以使用以下库安装它。

让我们理解下面的例子。

示例 -

输出

Héllo, Wörld!
大中华民国
à perturber la réflexion

解释 -

在上面的代码中,ftfy.fix_text() 函数用于修复文本的特定问题。第一个示例修复混合字符编码,第二个示例修复乱码,第三个示例清理文本格式。

5. Sketch

Sketch 是一个基于 AI 的 Python 编写代码助手,专门用于 pandas 库。它有助于利用机器学习算法来纠正用户数据,并提供适当的代码建议,以使数据操作和分析任务更快、更容易。

它允许用户使用紧凑表示存储和操作大型数据集,这些表示在空间复杂度方面效率高,并提供快速性能。该库提供各种类型的数据结构,如 Count-Min Sketch、HyperLogLog、Bloom Filter 和 MinHash,可用于不同目的,例如估计数据集中项目的频率、识别近似重复项或测量数据集之间的相似性。

该库可用于各种应用程序,例如数据挖掘、机器学习、自然语言处理、网络分析和 Web 分析。它是一个开源库,可以使用 Python 的包管理器 pip 进行安装。

让我们理解下面的例子。

示例 -

输出

3
1
1
03
1
1
0

解释 -

在上面的代码中,我们创建一个具有 10 个哈希函数和 1000 行的 CountMinSketch 对象。然后我们使用 update() 方法更新一些数据(字符串“apple”、“banana”和“cherry”)的草图。最后,我们使用 estimate() 方法估计某些项目的频率。

输出显示“apple”在数据集中出现三次,“banana”和“cherry”各出现一次,“orange”根本没有出现。请注意,频率估计是近似值,并且由于 Count-Min Sketch 数据结构的概率性质,可能略有不准确。

6. rembg

Rembg 是一个用 Python 编写的开源库,它使用深度学习来去除图像背景。它旨在处理包含单个前景对象且前景和背景之间边界清晰的图像,例如人物、动物或物体在纯色背景上的照片。

该库使用预训练的卷积神经网络 (CNN) 模型来预测图像中每个像素属于前景或背景的概率。该模型在大型标注图像数据集上进行训练,能够准确检测前景和背景之间的边界。

它可以作为独立的命令行工具使用,也可以作为可以集成到其他应用程序中的 Python 库使用。

Rembg 在图像处理、计算机视觉和摄影等广泛应用中非常有用。它可用于从图像中删除背景以用于其他项目,或创建可放置在不同背景上的抠图图像。它可以使用 Python 的包管理器 pip 进行安装。

它可以使用 Python 的包管理器 pip 进行安装。

让我们理解下面的例子。

示例 -

解释 -

在上面的代码中,我们导入了 rembg 的 remove() 方法和 cv2 库。我们从给定路径读取并使用 remove() 方法删除图像背景,并保存到输出路径。

结论

本教程包含了一些非常方便和有用的 Python 开发库。您可能已经了解了大多数库,但是您可以根据自己的要求使用它们。