10 малоизвестных библиотек Python, которые стоит использовать дата-саентистам в 2023 году

Python долгое время был одним из самых популярных языков программирования. Он имеет широкий спектр хорошо известных и часто используемых библиотек, таких как NumPy, Pandas и Matplotlib. Однако, существует несколько малоизвестных библиотек Python, которые могут иметь большое значение в карьере дата-сайентиста. В этой статье я попытался рассказать о 10 таких библиотеках, ведь действительно стоит задуматься о том, чтобы начать использовать в своей работе что-то новое.

PyGWalker: PyGWalker упрощает рабочий процесс анализа и визуализации данных в Jupyter Notebook, превращая фрейм данных pandas (или фрейм данных polars) в пользовательский интерфейс в стиле Tableau для визуального исследования.

import pandas as pd
import pygwalker as pyg

#https://www.kaggle.com/code/asmdef/pygwalker-test/notebook
df = pd.read_csv("hour.csv", parse_dates=['dteday'])
df.head()

pyg.walk(df)
10 малоизвестных библиотек Python, которые стоит использовать дата-саентистам в 2023 году

Приведённый выше график показывает интерфейс, похожий на таблицу, использующий файл excel hour.csv, в котором содержится сумма скорости ветра за каждый месяц. Конечно, всегда можно поэкспериментировать с разными параметрами по осям X и Y.

SciencePlots: Создаёт профессиональные графики matplotlib для презентаций, исследовательских работ и т.д.

import matplotlib.pyplot as plt
import scienceplots as sp

plt.style.use(['fivethirtyeight','dark_background'])

with plt.style.context('seaborn-paper'):
    plt.figure()
    plt.plot(x, y)
    plt.show()
10 малоизвестных библиотек Python, которые стоит использовать дата-саентистам в 2023 году

Приведённый выше код использует комбинацию стилей ‘fivethirtyeight’ и ’dark_background’. Хотя лучше ознакомиться со списком уже доступных стилей (используя приведённый ниже код), иначе в программе легко могут возникнуть ошибки из-за отсутствия какого-либо стиля.

import matplotlib.pyplot as plt
import numpy as np
#plt.style.use(['science', 'notebook'])
plt.style.available


Output:
['Solarize_Light2',
 '_classic_test_patch',
 '_mpl-gallery',
 '_mpl-gallery-nogrid',
 'bmh',
 'classic',
 'dark_background',
 'fast',
 'fivethirtyeight',
 'ggplot',
 'grayscale',
 'seaborn']

CleverCSV: Устраняет ошибки синтаксического анализа при чтении CSV-файлов с помощью Pandas.

import clevercsv

# Open CSV file and parse its contents
with open('hour.csv', 'r') as file:
    csv_reader = clevercsv.reader(file, delimiter=',', quotechar='"')
    for row in csv_reader:
        print(row)
10 малоизвестных библиотек Python, которые стоит использовать дата-саентистам в 2023 году

В этом примере функция clevercsv.reader() используется для чтения CSV-файла с именем ‘hour.csv‘ из предыдущей задачи. Функция принимает несколько параметров, включая объект file, символ-разделитель (в данном случае запятую) и символ кавычки (в данном случае двойную кавычку).

Объект csv_reader, возвращаемый clevercsv.reader(), может быть повторён для извлечения каждой строки CSV-файла в виде списка. В этом примере каждая строка выводится на консоль.

Обратите внимание, что CleverCSV автоматически устраняет распространённые проблемы с CSV-файлами, такие как несоответствующие разделители полей или символы кавычек. Это делает его полезным инструментом для работы с беспорядочными или плохо отформатированными CSV-файлами.

fastparquet: Ускоряет ввод-вывод pandas в 5 раз.

import pandas as pd
import fastparquet as fp

# Create a sample dataframe
data = {'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]}
df = pd.DataFrame(data)

# Write the dataframe to a Parquet file
fp.write('example.parquet', df)

# Read the Parquet file into a new dataframe
new_df = fp.ParquetFile('example.parquet').to_pandas()

# Print the new dataframe
print(new_df)

Output:
name  age
0    Alice   25
1      Bob   30
2  Charlie   35

В этом примере библиотека fastparquet используется для записи фрейма данных pandas в файл Parquet, а затем считывания его обратно в новый фрейм данных. fastparquet – это высокопроизводительная реализация формата Parquet на Python, предназначенная для бесперебойной работы с фреймами данных Pandas. Она обеспечивает быструю производительность чтения и записи, эффективное сжатие и поддержку широкого спектра типов данных.

nbcommands: Позволяет легко выполнять поиск кода в Jupyter notebooks, а не выполнять это вручную.

https://nbcommands.readthedocs.io/en/latest/

Bottleneck: ускоряет работу методов NumPy в 25 раз. Особенно, если массив имеет значения NaN.

import bottleneck as bn
import numpy as np

# Create a 2D array of random values
arr = np.random.rand(1000, 10)

# Calculate the moving average of each row using bottleneck
moving_avg = bn.move_mean(arr, window=3, axis=1)

print(moving_avg)

Output:

[[       nan        nan 0.28970504 ... 0.36931535 0.42605879 0.59029909]
 [       nan        nan 0.49734916 ... 0.47646434 0.62247903 0.59207834]
 [       nan        nan 0.61133785 ... 0.68879594 0.68071521 0.54268834]
 ...
 [       nan        nan 0.40336392 ... 0.71474823 0.7382253  0.50349293]
 [       nan        nan 0.63514901 ... 0.42061741 0.39216543 0.44065902]
 [       nan        nan 0.17439254 ... 0.59518532 0.68540443 0.64765793]]

В этом коде библиотека bottleneck импортируется как bn. Затем создаётся 2D массив NumPy с 1000 строками и 10 столбцами со случайными значениями.

Далее функция move_mean используется из Bottleneck для вычисления скользящего среднего для каждой строки в массиве. Параметр window указывает количество значений, которые будут использоваться при вычислении каждого скользящего среднего, а параметр axis указывает ось, вдоль которой будет вычисляться скользящее среднее (в данном случае мы вычисляем его для каждой строки, поэтому устанавливаем axis=1).

Наконец, выводится результирующий массив скользящих средних. Это лишь один пример того, как Bottleneck может быть использовано в коде Python для повышения производительности вычислений.

multipledispatch: включает перегрузку функций в Python.

from multipledispatch import dispatch

@dispatch(int, int)
def add(x, y):
    return x + y

@dispatch(float, float)
def add(x, y):
    return x + y

@dispatch(str, str)
def add(x, y):
    return x + y

print(add(1, 2))    # Output: 3
print(add(1.0, 2.0))    # Output: 3.0
print(add("Hello, ", "World!"))    # Output: Hello, World!

Output:
3
3.0
Hello, World!

В этом примере функция add определена и имеет три реализации, каждая из которых принимает разные типы входных данных. Декоратор @dispatch используется для указания того, какую реализацию использовать на основе типов ввода. Когда функция add вызывается с аргументами разных типов, multipledispatch автоматически выбирает правильную реализацию на основе сигнатуры типа аргументов. Это позволяет легко писать чистый и читаемый код, который может обрабатывать несколько типов входных данных.

Aquarel: дополнительные стили графиков matplotlib.

https://github.com/lgienapp/aquarel

Modelstore: библиотека моделей машинного обучения для лучшего отслеживания работы моделей.

https://github.com/operatorai/modelstore

Pigeon: помогает анотировать данные щелчками мышки в Jupyter notebook.

from pigeon import annotate
import pandas as pd

# Define the options for the labels
options = ['Positive', 'Negative']

# Load your data
df = pd.read_csv('healthcare-dataset-stroke-data.csv')

# Annotate the data using Pigeon
annotations = annotate(df['stroke'], options=options)

# Save the annotations to a CSV file
annotations_df = pd.DataFrame(annotations, columns=['annotations'])
annotations_df.to_csv('annotations.csv', index=False)
10 малоизвестных библиотек Python, которые стоит использовать дата-саентистам в 2023 году

В этом примере функция annotate импортируется из библиотеки Pigeon, параметры определены для меток, а данные загружены из файла .CSV. Функция annotate используется для того, чтобы предложить аннотатору пометить каждую категорию (в данном случае “stroke“) набора данных одним из определённых параметров (Positive или Negative). Наконец, аннотации сохраняются в CSV-файл.

В заключение отметим, что Python – это мощный и универсальный язык программирования с огромным набором библиотек на выбор. Хотя существует множество популярных библиотек, важно не упускать из виду менее известные из них, которые могут предложить уникальную и ценную функциональность. 10 библиотек, упомянутых в этой статье, – это лишь небольшая выборка из множества скрытых жемчужин, ожидающих своего открытия в экосистеме Python. Исследуя и экспериментируя с этими библиотеками, разработчики могут расширить свои наборы инструментов и получить новые идеи и возможности, которые могут помочь им решать даже самые сложные проблемы.

На этом заканчивается статья о 10 малоизвестных библиотеках Python, которые программисты должны использовать в 2023 году. Следите за обновлениями и за другими статьями, связанными с python, EDA, машинным обучением, глубоким обучением, вариантами использования ChatGPT и NLP, а также различными проектами.

Github: https://github.com/abhigyan631

+1
0
+1
5
+1
0
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *