Язык Python часто применяется в Data Science, потому что, во-первых, по сравнению с другими языками код для сложных задач на Python проще и короче. А во-вторых, есть много мощных прикладных библиотек для решения разных задач: первичной обработки и анализа данных, обработки естественного языка и визуализации. Эта подборка будет полезна аналитикам данных, математикам и тем, кто занимается Data Science на разных уровнях. Составить ее нам помогли эксперты старший аналитик «Ростелеком» Константин Башевой, руководитель отдела аналитики в Mail.ru Петр Ермаков и ментор курса SkillFactory Анна Агабекян.
Библиотеки Python — это файлы с шаблонами кода. Их придумали для того, чтобы людям не приходилось каждый раз заново набирать один и тот же код: они просто открывают файл, вставляют свои данные и получают нужный результат. В этом материале вы найдете описание библиотек, которые используются чаще всего для анализа данных на Python.
Основные библиотеки Python
Вот базовые библиотеки, которые делают из языка программирования Python инструмент для анализа и визуализации данных. Иногда их называют SciPy Stack. На них основываются более специализированные библиотеки.
Jupyter
Интерактивная оболочка для языка Python. В ней есть дополнительный командный синтаксис; она сохраняет историю ввода во всех сеансах, подсвечивает и автоматически дополняет код. Если вы когда-либо пользовались Mathematica или MATLAB, то разберетесь и в Jupyter.
Интерфейс библиотеки подходит для исследования и первичной обработки данных, тестирования первых версий кода и его улучшения. Используя язык разметки Markdown для форматирования текста и библиотеки для визуализации, можно формировать аналитические отчеты в браузере или преобразовать отчет в презентацию. С помощью JupyterHub можно настроить совместную работу команды на сервере.
Пример небольшого анализа данных в браузере:
![](https://blog.skillfactory.ru/wp-content/uploads/2023/03/6de53a6e-76e0-4588-b9d8-6f665a1d29ff.png)
![](https://blog.skillfactory.ru/wp-content/uploads/2023/03/5478f833-079b-4387-a7f6-8bfddd067a85.png)
![](https://blog.skillfactory.ru/wp-content/uploads/2023/03/1c3d7a05-38b9-48c1-8f85-502200d641ad.png)
![](https://blog.skillfactory.ru/wp-content/uploads/2023/03/77dfa4da-6ddc-4616-a897-1b882d399e81.png)
![](https://blog.skillfactory.ru/wp-content/uploads/2023/03/856d1007-ab72-46b9-9cf8-22403eb5d79f.png)
![](https://blog.skillfactory.ru/wp-content/uploads/2023/03/feb6c616-a55c-455a-bfd4-d4dc8851f028.png)
NumPy
NumPy — основная библиотека Python, которая упрощает работу с векторами и матрицами. Содержит готовые методы для разных математических операций: от создания, изменения формы, умножения и расчета детерминанта матриц до решения линейных уравнений и сингулярного разложения. Например, возьмем такую систему уравнений:
Чтобы ее решить, достаточно воспользоваться методом lialg.solve:
![Пример работы с библиотекой NumPy](https://blog.skillfactory.ru/wp-content/uploads/2023/03/7476ee8b-00a9-4ae8-8418-8cf74b449f8f-1024x222.png)
SciPy
Библиотека SciPy основывается на NumPy и расширяет ее возможности. SciPy похожа на Matlab. Включает методы линейной алгебры и методы для работы с вероятностными распределениями, интегральным исчислением и преобразованиями Фурье.
Пример расчета определителя двумерной матрицы:
![Пример работы с библиотекой SciPy](https://blog.skillfactory.ru/wp-content/uploads/2023/03/bf2ceb31-3f0d-4858-a7af-9ec6e5b695b3-1024x222.png)
Matplotlib
Matplotlib — низкоуровневая библиотека для создания двумерных диаграмм и графиков. С ее помощью можно построить любой график, но для сложной визуализации потребуется больше кода, чем в продвинутых библиотеках.
![](https://blog.skillfactory.ru/wp-content/uploads/2023/03/28783916-51c0-4dd6-9176-87042be01d99.png)
Используемый код:
![Пример работы с библиотекой Marplotlib](https://blog.skillfactory.ru/wp-content/uploads/2023/03/f6d6f92f-83a6-4d21-a9aa-e79a87070a5d-1024x240.png)
Библиотеки для работы с данными
Библиотеки Python для анализа данных, Machine Learning и обучения сложных нейронных сетей.
Scikit-learn
Scikit-learn основана на NumPy и SciPy. В ней есть алгоритмы для машинного обучения и интеллектуального анализа данных: кластеризации, регрессии и классификации. Это одна из самых лучших библиотек для компаний, работающих с огромным объемом данных — ее используют Evernote, OKCupid, Spotify и Birchbox.
Пример визуализации частичной зависимости стоимости домов в Калифорнии в зависимости от особенностей местности:
![Пример визуализации данных в Scikit-learn](https://blog.skillfactory.ru/wp-content/uploads/2023/03/d2e7d6e9-e508-4938-9d13-0a7a3cec4f0d.png)
Используемый код:
![Пример использования библиотеки Scikit-learn](https://blog.skillfactory.ru/wp-content/uploads/2023/03/dfe8eea6-4775-49ab-af61-6c3e322ce316-1024x330.png)
TensorFlow
Библиотеку создали в Google, чтобы заменить DistBelief — фреймворк для обучения, настройки и тренировки нейронных сетей. Благодаря этой библиотеке Google может определять объекты на фотографиях, а приложение для распознавания голоса — понимать речь.
Пример архитектуры сверточной нейронной сети:
![Пример работы с библиотекой Tensorflow](https://blog.skillfactory.ru/wp-content/uploads/2023/03/6582819a-4d69-489f-a097-3896261d326d-1024x456.png)
Keras
Библиотека глубокого обучения. Благодаря модульности и масштабированию она позволяет легко и быстро создавать прототипы. Keras поддерживает как сверточные и рекуррентные сети, так и их комбинации.
Пример кода обучения модели по классификации изображений:
![Пример использования библиотеки Keras](https://blog.skillfactory.ru/wp-content/uploads/2023/03/60576397-10a0-4643-a273-f86a65d88aa9-1024x240.png)
Библиотеки для интеллектуального анализа и обработки естественного языка
Полезные иблиотеки для работы с текстом, которые используются для извлечения данных из интернет-ресурсов и обработки естественного языка.
Scrapy
Библиотека используется для создания ботов-пауков, которые сканируют страницы сайтов и собирают структурированные данные: цены, контактную информацию и URL-адреса. Кроме этого, Scrapy может извлекать данные из API.
Пример кода для создания бота-паука:
![Пример использования библиотеки Scrapy](https://blog.skillfactory.ru/wp-content/uploads/2023/03/05280c93-a14c-4284-b855-0f52e76bba28.png)
NLTK (Natural Language Toolkit)
Набор библиотек для обработки естественного языка. Основные функции: разметка текста, определение именованных объектов, отображение синтаксического дерева, раскрывающего части речи и зависимости.
Например, так выглядит обучение классификатора, который будет определять тональность текста:
![](https://blog.skillfactory.ru/wp-content/uploads/2023/03/64811519-d452-4cc1-b110-a8f2c2b5f4ed-1024x276.png)
Pattern
Сочетает функциональность Scrapy и NLTK и предназначена для извлечения данных в интернете, естественной обработки языка, машинного обучения и анализа социальных сетей. Среди инструментов есть поисковик, API для Google, Twitter и Wikipedia и алгоритмы текстового анализа, которые могут выполняться несколькими строками кода.
Пример визуализации графа:
![Пример визуализации в Pattern](https://blog.skillfactory.ru/wp-content/uploads/2023/03/a50ac367-3431-4474-8f5a-f33e71a9d578.png)
Используемый код:
![Пример использования библиотеки Pattern](https://blog.skillfactory.ru/wp-content/uploads/2023/03/e3bdd8d1-c503-4332-9620-3335d97863a4-1024x348.png)
Библиотеки Python для визуализации
Библиотеки, которые пригодятся в визуализации данных и построении графиков.
Seaborn
Библиотека более высокого уровня, чем matplotlib. С ее помощью проще создавать специфическую визуализацию: тепловые карты, временные ряды и скрипичные диаграммы. Пример визуализации:
![Пример визуализации в Seaborn](https://blog.skillfactory.ru/wp-content/uploads/2023/03/7e6038a9-19d6-41da-b79d-20d2f05b1ad3.png)
Используемый код:
![Пример использования библиотеки в Seaborn](https://blog.skillfactory.ru/wp-content/uploads/2023/03/6d3e8e61-e942-486b-86fc-86f5be6f5f3d-1024x258.png)
Bokeh
Создает интерактивные и масштабируемые графики в браузерах, используя виджеты JavaScript. Сложность графиков может быть разная: от стандартных диаграмм до сложных кастомизированных схем. Примеры визуализации:
![Пример визуализации в Bokeh](https://blog.skillfactory.ru/wp-content/uploads/2023/03/862a382f-9f7a-40d1-ad3b-662f90788243.png)
Используемый код:
![Пример использования библиотеки Bokeh](https://blog.skillfactory.ru/wp-content/uploads/2023/03/46297abf-0c32-4b7e-94af-2618eabb6ede-1024x366.png)
Basemap
Basemap используется для создания карт. На ее основе сделана библиотека Folium, с помощью которой создают интерактивные карты в интернете. Пример карты:
![Пример визуализации в Basemap](https://blog.skillfactory.ru/wp-content/uploads/2023/03/b803ddcf-1d3a-4345-a967-37e70a91d9bc.png)
Код:
![Пример использования библиотеки Basemap](https://blog.skillfactory.ru/wp-content/uploads/2023/03/8c43659a-77b7-4ea4-95ce-435ca746806e-1024x348.png)
NetworkX
Используется для создания и анализа графов и сетевых структур. Предназначена для работы со стандартными и нестандартными форматами данных.
![Пример визуализации в NetworkX](https://blog.skillfactory.ru/wp-content/uploads/2023/03/a6389b3e-fbbf-4e71-9e6b-eaaf09169650.png)
Используемый код:
![Пример использования библиотеки NetworkX](https://blog.skillfactory.ru/wp-content/uploads/2023/03/b7ea2505-215f-49e8-ae9c-e24e81258aa2-1024x312.png)
Это малая часть библиотек Python, но и их достаточно, чтобы на серьезном уровне анализировать данные, создавать и обучать нейронные сети и визуализировать результаты.