Python中最受欢迎的数据工程师和自然语言处理领域常用的库

Python中最受欢迎的数据工程师和自然语言处理领域常用的库

本教程将介绍Python中最受欢迎的数据工程师常用库。这些库使数据工程师的生活更轻松。正如我们所知,Python是机器学习最流行的语言之一。我们将列出这些受欢迎的库及其代码。

Python的六个顶级库

1.Pendulum

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

它为格式化日期和时间提供了一个简单且友好的API。现在,让我们安装此库。

!pip install pendulum

现在,让我们了解以下示例。

例子–

import pendulum

# Create a new datetime object for the current date and time in UTC
dt = pendulum.now('UTC')

# Print the datetime object
print(f'datetime object: {dt}')

# Convert the datetime object to another time zone
dt = dt.in_timezone('Europe/Paris')

# Print the converted datetime object
print(f'Converted datetime object: {dt}')

# Create a new datetime object for a specific date and time
dt = pendulum.datetime(2022, 3, 15, 12, 30, tz='America/New_York')

# Print the datetime object
print(f'Specific datetime object: {dt}')

# Calculate the difference between two datetime objects
dt1 = pendulum.datetime(2022, 2, 1)
dt2 = pendulum.datetime(2022, 3, 15)
diff = dt2 - dt1

# Print the difference in days
print(f'Difference: {diff.in_days()}')

输出

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

解释 –

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

2.Humanize

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

pip install humanize

让我们了解以下示例。

例子 –

import humanize
import datetime

# Display the current date and time as a human-readable string
now = datetime.datetime.now()
print("Current Date and Time:", humanize.naturaltime(now))

# Convert a large number to a human-readable string
n = 500000000
print(humanize.intcomma(n))

# Display a duration as a human-readable string
duration = datetime.timedelta(hours=25, minutes=30, seconds=15)
print("Duration ", humanize.naturaldelta(duration))

# Display a file size as a human-readable string
size = 1024 * 1024 * 1024
print("File size", humanize.naturalsize(size))

输出

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坐标、邮政编码/邮政编码和国家/地区。它为Python用户提供了一个接口,以从Geonames地理数据库中查询和检索数据,该数据库是一个包含地理位置及其相应数据(例如国家、地区、邮政编码等)的全面数据集。

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

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

pip install pgeocode

例子–

import pgeocode
# Create an instance of pgeocode
nomi = pgeocode.Nominatim('us')

# Query for location information by postal code
location_info = nomi.query_postal_code('10001')

# Display the location information
print(location_info)

输出

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(file text for you)库可以解决此类问题。当处理从Web抓取的文本数据或使用非标准方法进行编码的文本数据时,它尤其有用。它可以用于各种应用程序,包括数据清理、文本分析和自然语言处理。它还包括清理因自动文本校正或格式化而损坏的文本的工具,例如意外大写或小写的文本。我们可以使用以下库进行安装。

pip install ftfy

让我们了解以下示例。

例子 –

import ftfy
# Fixing mixed character encodings
text = 'Héllo, Wörld!'
fixed_text = ftfy.fix_text(text)
print(fixed_text)

# Fixing mojibake
text = 'å¤§ä¸­åŤŽæ°‘å›½'
fixed_text = ftfy.fix_text(text)
print(fixed_text)

# Cleaning up text formatting
print(ftfy.fix_text('à perturber la réflexion'))

输出

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

解释 –

在上面的代码中,我们使用ftfy库中的fix_text()函数来解决文本中特定问题。第一个示例修复混合字符编码,第二个示例修复了Mojibake,第三个示例则清理了文本格式。

5.Sketch

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

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

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

pip install sketch

让我们了解以下示例。

例子 –

from sketch import CountMinSketch
# Create a Count-Min Sketch data structure with 10 hash functions and 1000 rows
cms = CountMinSketch(10, 1000)

# Update the sketch with some data
cms.update("apple")
cms.update("banana")
cms.update("apple")
cms.update("cherry")
cms.update("apple")

# Estimate the frequency of some items
print(cms.estimate("apple"))   
print(cms.estimate("banana"))  
print(cms.estimate("cherry"))  
print(cms.estimate("orange"))  

输出

3
1
1
03
1
1
0

解释 –

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

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

6.rembg

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

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

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

Rembg在图像处理、计算机视觉和摄影等广泛领域中非常有用。它可以用于从图像中删除背景以供其他项目使用,或创建可放置在不同背景上的剪贴图像。

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

pip install rembg

让我们了解以下示例。

例子 –

from rembg import remove
import cv2 
# path of input image (my file: image.jpeg)
input_path = r'C:\Users\DEVANSH SHARMA\Desktop\sample_image.jpg'
# path for saving output image and saving as a output.jpeg
output_path = r'C:\Users\DEVANSH SHARMA\Desktop'
# Reading the input image
input = cv2.imread(input_path)
# Removing background
output = remove(input)
# Saving file 
cv2.imwrite(output_path, output)

解释 –

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

总结

本教程介绍了一些很棒的库,对Python开发人员非常有用。您可能已经知道大多数库,但是可以根据自己的需求使用它们。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python 教程