10 полезных Python-библиотек для Data Science
Предсказать окупаемость проекта, улучшить транспортное движение и вычислить спрос на товары в определенных условиях — всё это возможно с Data Scince. А Python в области анализа данных и машинного обучения используется как основной язык. Для удобства к нему подключают библиотеки — файлы с готовыми шаблонами кода. В статье делимся подборкой таких библиотек.
Pandas — для первичного анализа
Pandas — почти как Excel, но гораздо круче. С ее помощью можно обрабатывать большие объемы данных. Библиотека относится к opensource-проектам, то есть ее исходный код находится в открытом доступе, а вносить пояснения и дополнения могут все пользователи. На официальном сайте есть подробная инструкция по установке пакета.
Особенность pandas в том, что она подходит для работы с уже структурированными табличными, или, как их еще называют, панельными данными. Отсюда и название библиотеки — PANel DAta. Pandas позволяет подготовить данные для их дальнейшего использования в машинном обучении: обрабатывать большие объемы информации, создавать графики и диаграммы, проводить статистический анализ данных.
С помощью pandas можно:
- Создавать таблицы: pandas позволяет работать с такими форматами, как CSV, JSON или XML. Кроме того, библиотека помогает преобразовать разные форматы данных в пригодные для анализа на Python.
- Обрабатывать данные: фильтровать, сортировать, агрегировать (преобразование набора данных в один отчет) и преобразовывать данные.
- Визуализировать данные: создавать линейные графики, столбчатые диаграммы, круговые диаграммы и сводные отчеты.
- Работать с базами данных: pandas можно использовать, например, для чтения и записи данных в MySQL, PostgreSQL или MongoDB.
Пример расчетов с pandas для создания таблицы с двумя колонками 'column1' и 'column2':
1 2 3 4 5 6 7 8 |
import pandas as pd # Создаем таблицу с данными data = {'column1': [1, 2, 3], 'column2': [4, 5, 6]} df = pd.DataFrame(data) # Рассчитываем среднее значение столбца 'column2' mean_column2 = df['column2'].mean() # Выводим результат print("Среднее значение столбца 'column2':", mean_column2) |
NumPy — для работы с массивами чисел
Массив данных — упорядоченный набор элементов одного типа, который позволяет эффективно хранить и обрабатывать большие объемы данных. Массивом может быть, например, список покупок с информацией о покупателе, цене и названии продукта. Двумерный массив выглядит, как таблица Excel, — две оси и ячейки.
NumPy — еще один наиболее широко используемый Python-пакет, библиотека для работы с многомерными массивами чисел. Полное название библиотеки — Numerical Python extensions (Числовые расширения Python). Как и pandas, у нее открытый исходный код, доступный для пользователей. Библиотека содержит мощные инструменты для численных расчетов, обработки изображений и других задач, связанных со сложными математическими операциями над массивами данных.
Для чего полезна библиотека NumPy:
- Обработка и анализ больших объемов данных, например, для научных исследований или магазинов. Например, если необходимо сократить затраты на доставку и уменьшить процент возврата товаров, можно математически высчитать популярные категории товаров и оптимальные способы доставки.
- Машинное обучение: с помощью NumPy можно создавать ML-модели. Это полезно, например, для анализа спроса в магазинах или исследования трафика на дорогах.
- Анализ изображений: например, если нужно обнаружить какие-то объекты на фотографиях или определить конкретные характеристики.
- Финансовый анализ: с NumPy проще анализировать отчеты о прибыли и убытках, балансовые ведомости, составлять финансовые прогнозы. Так компаниям будет проще принимать обоснованные инвестиционные решения и оценивать риски.
- Обработка видео: NumPy можно применять для обработки видео, распознавания лиц или захвата движения. Это позволяет компаниям анализировать видеоданные и выявлять потенциальные угрозы безопасности или нарушения правил — например, когда нужно определить, носят ли сотрудники маски на рабочем месте.
Matplotlib — для создания графиков и визуализации данных
Графики всегда воспринимаются легче бесконечных таблиц. Особенно, если дело касается анализа данных и сравнения метрик. С помощью Matplotlib можно создавать графики разных видов и интегрировать их в приложения через API.
Линейные, точечные, круговые диаграммы, гистограммы, спектрограммы, контурные графики — с библиотекой доступны визуализации любой сложности.
SciPy — для математических задач
SciPy — библиотека для сложных инженерных и научных расчетов, основанная на NumPy. Если NumPy предназначена для базовых вычислений, то SciPy — для более глубокого анализа, в ней больше методов и функций.
Примеры задач, которые можно решить с библиотекой SciPy:
- Вычисление вероятностей: например, если вам нужно определить вероятность того, что пользователь выберет конкретный продукт, или вероятность, что в заданный момент времени произойдет конкретное событие.
- Расчет математических функций: возведение в степень, извлечение корня, логарифмирование, решение дифференциальных уравнений.
- Работа с генетическими алгоритмами, например, для оптимизации гиперпараметров модели машинного обучения.
- Обработка изображений: можно фильтровать изображения по какому-либо признаку и находить определенные объекты.
Пример применения SciPy для вывода статистических характеристик каждого элемента выборки:
1 2 3 4 5 6 7 8 9 10 11 12 |
import numpy as np from scipy import stats # Задаем данные для расчета X = [1, 2, 3] # Пример данных Y = [4, 5, 6] # Пример данных # Вычисляем статистические характеристики stats_df = stats.sem(X, Y) print("Статистические характеристики:") for i in range(len(stats_df)): print(stats_df[i][0], end=" ") print(stats_df[i][1], end=" ") print() |
Plotly — для трехмерной визуализации данных
Еще одна библиотека с открытым исходным кодом и мощный инструмент для визуализации данных. В отличие от Matplotlib Plotly позволяет создавать не просто разные виды диаграмм, а делать их объемными и интерактивными — например, если вы хотите, чтобы пользователи могли взаимодействовать с ними.
Plotly обладает множеством дополнительных функций: настройка внешнего вида графика, добавление анимаций, таймеров и других элементов управления. Это делает ее удобной для использования в разных областях, от научных исследований до маркетинга.
Кроме того, с помощью Plotly можно экспортировать результаты в формате JSON для работы в других приложениях.
TensorFlow — для создания нейросетей любой сложности
TensorFlow — открытая комплексная платформа для машинного обучения. Она позволяет создавать нейронные сети с высокой точностью и скоростью. Библиотеку разработали в Google и сейчас ее используют во многих проектах, включая создание чат-ботов, голосовых помощников и систем распознавания речи. При этом она поддерживает не только Python, а еще Java и C++.
Возможности TensorFlow:
- создание глубоких нейронных сетей (Deep Learning), которые могут обрабатывать большие объемы данных и выполнять сложные задачи;
- оптимизация работы нейросетей и ускорение процесса обучения;
- использование различных типов данных для обучения модели: например, можно применять изображения или текстовые данные для создания более сложных моделей;
- создание чат-ботов, голосовых помощников.
Keras — для глубокого обучения
Keras — надстройка над TensorFlow, узко специализированная библиотека для глубокого машинного обучения. Она не выполняет сложных математических вычислений, зато позволяет быстро создать модели, с помощью которых происходит обучение нейросетей.
Что можно делать с помощью Keras:
- создавать и обучать нейронные сети с использованием различных архитектур (принцип построения сети);
- использовать библиотеку TensorFlow для ускорения работы нейронной сети (о том, как это работает, мы подробно рассказывали в статье о фреймворках);
- задавать настройки параметров модели: количество слоев, число нейронов в каждом слое, скорость обучения, размер пакета;
- генерировать изображения и видео на основе данных, визуализировать модели;
- обучать нейронные сети с использованием исторических данных;
- обрабатывать естественный язык, включая машинный перевод, классификацию текста и другие параметры.
Dask — для параллельных вычислений
Параллельные вычисления — задействование нескольких вычислительных устройств для одновременного выполнения процессов одной программы или одного проекта.
Dask — распределенная библиотека с открытым исходным кодом для параллельных вычислений и масштабирования. Она приходит на помощь тогда, когда другим библиотекам для вычислений, например NumPy, сложно обработать большие объемы данных.
Одно из преимуществ Dask — возможность масштабировать вычисления на персональном компьютере до нескольких ядер. Кроме того, Dask отлично интегрируется с NumPy, Pandas и некоторыми другими фреймворками.
Насколько большие объемы данных может обработать Dask? Например, в Walmart, американском оптовом магазине, библиотеку используют для прогнозирования спроса 500 миллионов комбинаций товаров. В число компаний, которые применяют Dask, входят также General Motors, Nvidia и NASA.
Statsmodels — для изучения статистических данных
StatsModels — библиотека статистических методов. С ее помощью можно анализировать большие объемы данных. Она предназначена для анализа данных и прогнозирования на основе математических моделей.
Дело в том, что у Python мало встроенных возможностей для статистических вычислений, но с помощью StatsModels можно проводить сложные вычисления, проверку гипотез, оценку параметров модели, регрессионный и кластерный анализ.
StatsModels может быть полезна различным специалистам, работающим в области статистики и экономики: аналитики используют библиотеку для проведения исследований и оценки рисков при принятии решений; бизнесмены — для прогнозирования продаж и определения эффективности маркетинговых кампаний.
⌘⌘⌘
Конечно, это далеко не все библиотеки на Python, которые используются для работы с большими данными. Но этого достаточно, чтобы провести первичный и глубокий анализ, работать со статистикой, визуализировать результаты, создавать и обучать нейронные сети. Только не забудьте выбрать подходящую инфраструктуру для ваших AI- и ML-проектов 😉