Шесть малоизвестных библиотек Python 2023
Я активно использую Python в течение последних пяти лет. Мне постоянно попадаются интересные библиотеки, которые могут улучшить мою работу в проектах. В прошлом я поделился двумя статьями: пятью классными библиотеками Python для Data Science и шестью классными библиотеками Python, с которыми я недавно столкнулся.
В этой статье я делюсь еще шестью удивительными библиотеками python, которые я сейчас использую в своей работе.
1. Humanize
Humanize обеспечивает простое, легко читаемое форматирование строк для чисел, дат и времени. Цель библиотеки – взять данные и сделать их более удобными для человека, например, путём преобразования количества секунд в более читаемую строку, такую как “2 минуты назад”. Библиотека может форматировать данные различными способами, включая форматирование чисел с помощью запятых, преобразование временных меток в относительное время и многое другое.
Я часто использую целые числа и дату и время для своих проектов по разработке данных.
Подключение
!pip install humanize
Пример (Целые числа)
# Importing library
import humanize
import datetime as dt
# Formatting numbers with comma
a = humanize.intcomma(951009)
# converting numbers into words
b = humanize.intword(10046328394)
#printing
print(a)
print(b)
Результат
Пример (Дата и время)
import humanize
import datetime as dt
a = humanize.naturaldate(dt.date(2012, 6, 5))
b = humanize.naturalday(dt.date(2012, 6, 5))
print(a)
print(b)
Результат
С дополнительной информацией об этой библиотеке вы можете ознакомиться здесь.
2.Pendulum
Хотя на Python доступно множество библиотек для DateTime, я нахожу, что Pendulum прост в использовании при любой операции с датами. Pendulum – моя любимая библиотека для ежедневного использования на работе. Она расширяет встроенный модуль Python DateTime, добавляя более интуитивно понятный API для обработки часовых поясов и выполнения операций с датами и временем, таких как добавление временных интервалов, вычитание дат и преобразование между часовыми поясами. Она предоставляет простой, удобный для пользователя API для форматирования дат и времени.
Подключение
!pip install pendulum
Пример
# import library
import pendulum
dt = pendulum.datetime(2023, 1, 31)
print(dt)
#local() creates datetime instance with local timezone
local = pendulum.local(2023, 1, 31)
print("Local Time:", local)
print("Local Time Zone:", local.timezone.name)
# Printing UTC time
utc = pendulum.now('UTC')
print("Current UTC time:", utc)
# Converting UTC timezone into Europe/Paris time
europe = utc.in_timezone('Europe/Paris')
print("Current time in Paris:", europe)
Результат
Мне нужно написать отдельную статью об этой библиотеки, показав в ней несколько примеров. Вы можете получить дополнительную информацию о Pendulum здесь.
3.ftfy
Сталкивались ли вы с тем, что иностранный язык, присутствующий в данных, отображается некорректно? Это называется моджибаке. Моджибаке – это термин, используемый для описания искажённого или скремблированного текста, который возникает в результате проблем с кодированием или декодированием. Обычно это происходит, когда текст, который был написан в одной кодировке символов, неправильно декодируется с использованием другой кодировки. Библиотека ftfy поможет вам исправить моджибаке, что очень полезно в случаях использования NLP.
Подключение
!pip install ftfy
Пример
print(ftfy.fix_text('Correct the sentence using “ftfyâ€\x9d.'))
print(ftfy.fix_text('✔ No problems with text'))
print(ftfy.fix_text('à perturber la réflexion'))
Результат
Помимо моджибаке, ftfy исправит неправильные кодировки, неправильные окончания строк и неправильные кавычки. Согласно документации, ftfy может понимать текст, который был декодирован в любой из следующих кодировок:
- Latin-1 (ISO-8859–1)
- Windows-1252 (cp1252 — используется в продуктах Microsoft)
- Windows-1251 (cp1251 — русская версия cp1252)
- Windows-1250 (cp1250 — восточноевропейская версия cp1252)
- ISO-8859–2 (который не совсем совпадает с Windows-1250)
- MacRoman (используется в Mac OS 9 и более ранних версиях)
- cp437 (используется в MS-DOS и некоторых версиях командной строки Windows)
Для получения более подробной информации, пожалуйста, ознакомьтесь с документацией здесь.
4. Sketch
Sketch – это уникальный помощник по написанию кода с искусственным интеллектом, специально разработанный для пользователей, работающих с библиотекой Pandas на Python. Он использует алгоритмы машинного обучения для понимания контекста пользовательских данных и предоставляет соответствующие предложения по коду, чтобы упростить и повысить эффективность задач обработки данных и анализа. Sketch не требует от пользователей установки каких-либо дополнительных плагинов в их IDE, что делает его быстрым и простым в использовании. Это может значительно сократить время и усилия, необходимые для выполнения задач, связанных с данными, и помочь пользователям писать лучший и более эффективный код.
Подключение
!pip install sketch
Пример
Нам нужно добавить расширение .sketch к фрейму данных Pandas, чтобы использовать эту библиотеку.
.sketch.ask
ask – это функция Sketch, которая позволяет пользователям задавать вопросы об их данных в формате естественного языка. Она предоставляет текстовый ответ на запрос пользователя.
# Importing libraries
import sketch
import pandas as pd
# Reading the data (using twitter data as an example)
df = pd.read_csv("tweets.csv")
print(df)
# Asking which columns are category type
df.sketch.ask("Which columns are category type?")
Результат
# To find the shape of the dataframe
df.sketch.ask("What is the shape of the dataframe")
.sketch.howto
howto – это функция, предоставляющая блок кода, который можно использовать в качестве отправной точки или заключения для различных задач, связанных с данными. Мы можем запросить фрагменты кода для нормализации их данных, создания новых функций, отображения данных и даже построения моделей. Это сэкономит время и позволит легко копировать и вставлять код; вам не нужно писать код вручную с нуля.
# Asking to provide code snipped for visualising the emotions
df.sketch.howto("Visualize the emotions")
Результат
.sketch.apply
функция .apply помогает создавать новые функции, анализировать поля и выполнять другие манипуляции с данными. Чтобы использовать эту функцию, нам нужно иметь учетную запись OpenAI и использовать API-ключ для выполнения задач. Я не пробовал эту функцию.
Мне понравилось пользоваться этой библиотекой, особенно функцией howto, и я нахожу её полезной.
Вы можете перейти на этот Github, чтобы узнать больше о Sketch.
5. pgeocode
pgeocode – отличная библиотека, с которой я недавно столкнулся, которая была невероятно полезна для моих проектов пространственного анализа. Например, она позволяет вам найти расстояние между двумя почтовыми кодами и предоставляет геоинформацию, используя страну и почтовый индекс в качестве входных данных.
Подключение
!pip install pgeocode
Пример
Получение геоинформации для конкретных почтовых индексов:
# Checking for country "India"
nomi = pgeocode.Nominatim('In')
# Getting geo information by passing the postcodes
nomi.query_postal_code(["620018", "620017", "620012"])
Результат
pgeocode вычисляет расстояние между двумя почтовыми кодами, используя страну и почтовые индексы в качестве входных данных. Результат указан в километрах:
# Finding a distance between two postcodes
distance = pgeocode.GeoDistance('In')
distance.query_postal_code("620018", "620012")
Результат
Вы можете ознакомиться с документацией библиотеки здесь.
6. rembg
rembg – это ещё одна полезная библиотека, которая легко удаляет фон с изображений.
Подключение
!pip install rembg
Пример
# Importing libraries
from rembg import remove
import cv2
# path of input image (my file: image.jpeg)
input_path = 'image.jpeg'
# path for saving output image and saving as a output.jpeg
output_path = 'output.jpeg'
# Reading the input image
input = cv2.imread(input_path)
# Removing background
output = remove(input)
# Saving file
cv2.imwrite(output_path, output)
Результат
Возможно, вы уже знакомы с некоторыми из этих библиотек, но для меня Sketch, Pendulum, pgeocode и ftfy незаменимы в моей работе по разработке данных. Я сильно полагаюсь на них в своих проектах.
Спасибо, что нашли время прочитать эту статью. Я хотел бы услышать ваши мысли и мнения, поэтому не стесняйтесь оставлять комментарии. Если вам есть что добавить, пожалуйста, не стесняйтесь комментировать!