6 основных библиотек для программирования на Python
Python (питон) — это высокоуровневый язык программирования общего назначения, который стал одним из ведущих и популярнейших в сообществе программистов. По своим возможностям он классифицируется от разработки упрощенных приложений до проведения сложных математических вычислений с одинаковым уровнем сложности.
Являясь одним из ведущих языков программирования, он имеет много фреймворков (платформ для построения приложений) и библиотек, которыми можно воспользоваться. Библиотека языка программирования — это просто набор модулей и функций, которые облегчают некоторые специфические операции с использованием этого языка программирования.
Итак, вот 6 основных библиотек для программирования на Python, о которых должен знать каждый разработчик на Python:
• Keras
Тип – нейросетевая библиотека.
Начальная версия – март 2015.
Keras – открытая нейросетевая библиотека, написанная на языке Python. Нацелена на оперативную работу с сетями глубокого обучения, при этом спроектирована так, чтобы быть компактной, модульной и расширяемой.
В дополнение к предоставлению более простого механизма для выражения нейронных сетей, Keras также предлагает некоторые из лучших функций для компиляции моделей, обработки наборов данных и визуализации графиков. На бэкэнде (сервере) Keras использует либо Theano, либо TensorFlow.
В связи с тем, что Keras создает вычислительный граф с помощью серверной инфраструктуры, а затем использует его для выполнения операций, он работает медленнее, чем другие библиотеки машинного обучения. Тем не менее, все модели в Keras являются портативными.
- Легко отлаживать и исследовать, так как она полностью написана на Python.
- Содержит многочисленные реализации широко применяемых строительных блоков нейронных сетей, таких как функции активации, уровни, цели и оптимизаторы.
- Невероятная выразительность и гибкость делают его идеальным для инновационных исследований.
- Предлагает несколько предварительно обработанных наборов данных и предварительно обученных моделей, таких как Inception, MNIST, ResNet, SqueezeNet и VGG.
- Обеспечивает поддержку почти всех моделей нейронных сетей, включая свёрточную, встраиваемую, полностью подключенную, объединяющую в пул и рекуррентную. Более того, эти модели можно комбинировать для разработки еще более сложных моделей.
- Работает как на CPU (центральном процессоре), так и на GPU (ядре процессора)
- Уже используется Netflix, Square, Uber и Yelp.
- Для исследования глубокого обучения. Принят исследователями в ЦЕРН и НАСА.
- Популярный среди стартапов, разрабатывающих продукты, основанные на глубоком обучении.
• NumPy
Тип – техническая вычислительная библиотека.
Начальная версия – 1995 (как Numeric).
NumPy был создан Трэвисом Олифантом в 2005 году путем включения функций конкурирующей библиотеки Numarray в библиотеку Numeric и применения обширных модификаций. В бесплатной библиотеке с открытым исходным кодом есть несколько соавторов со всего мира.
Одна из самых популярных библиотек машинного обучения в Python, TensorFlow и несколько других библиотек используют библиотеку NumPy Python внутри себя для выполнения нескольких операций над тензорами.
- Активная поддержка сообщества
- Полностью бесплатный и открытый исходный код
- Сложные матричные операции, такие как матричное умножение
- Интерактивный и супер простой в использовании
- Облегчает сложные математические реализации
- Легко кодировать с удобочитаемыми концепциями
- Для выполнения сложных математических вычислений
- Для представления изображений, звуковых волн и других форм двоичных необработанных потоков в виде массива действительных чисел в N-мерном
- Для проектов машинного обучения
• Pillow
Тип – Библиотека обработки изображений
Начальная версия – 1995 (Как Python Imaging Library или PIL)
2011 (Как Pillow)
Pillow — это библиотека Python, которая почти так же стара, как и язык программирования, для которого она была разработана. На самом деле, Pillow — это форк для PIL (Python Imaging Library). Свободно используемая библиотека Python необходима для открытия, манипулирования и сохранения разнообразных файлов изображений.
Pillow была принята в качестве замены оригинального PIL в нескольких дистрибутивах Linux, в частности, Debian и Ubuntu. Тем не менее, он также доступен для MacOS и Windows.
- Добавляет текст к изображениям
- Улучшение и фильтрация изображения, включая размытие, регулировку яркости, контур и резкость
- Маскировка и прозрачность
- Пиксельные манипуляции
- Обеспечивает поддержку множества форматов файлов изображений, включая BMP, GIF, JPEG, PNG, PPM и TIFF. Обеспечивает поддержку для создания новых декодеров файлов с целью расширения библиотеки доступных форматов файлов.
- Для обработки изображений
• PYGLET
Тип — Библиотека разработки игр
Начальная версия – апрель 2015
Библиотека многоплатформенного кадрирования и мультимедии для Python, PYGLET — это популярное имя для разработки игр с использованием Python. В дополнение к играм, библиотека разработана для создания визуально насыщенных приложений.
В дополнение к поддержке кадрирования, PYGLET обеспечивает поддержку загрузки изображений и видео, воспроизведения звуков и музыки, графики OpenGL и обработки событий пользовательского интерфейса.
- Использование нескольких окон и рабочих столов с несколькими мониторами
- Загрузка изображений, звука и видео практически во всех форматах
- Нет внешних зависимостей и требований к установке
- Предоставляется в соответствии с лицензией BSD с открытым исходным кодом, поэтому может свободно использоваться как в личных, так и в коммерческих целях
- Обеспечивает поддержку как Python 2, так и Python 3
- Для разработки визуально насыщенных приложений
- Для разработки игр
• Requests
Тип – Библиотека HTTP
Начальная версия – февраль 2011
Requests — HTTP библиотека Python, направлена на то, чтобы сделать запросы HTTP проще и удобнее. Разработанный Кеннетом Рейтцем и несколькими другими участниками, Requests позволяет отправлять запросы HTTP/1.1 без вмешательства человека.
От Nike и Spotify до Amazon и Microsoft десятки крупных организаций используют запросы внутренне, чтобы лучше справляться с HTTP. Написанная полностью на Python, Requests доступна в виде бесплатной библиотеки с открытым исходным кодом под лицензией Apache2.
- Автоматическое декодирование контента
- Базовая/дайджест-аутентификация
- Проверка SSL в браузерном стиле
- Частичные запросы и время ожидания соединения
- Обеспечивает поддержку прокси-серверов .netrc и HTTP (S)
- Сеансы с сохранением cookie
- Ответное тело Unicode
- Позволяет отправлять запросы HTTP/1.1 с использованием Python и добавлять контенты, такие как заголовки, данные форм и многокомпонентные файлы
- Для автоматического добавления строк запроса в URL
- Для автоматического кодирования данных POST
• TensorFlow
Тип – Библиотека машинного обучения
Начальная версия – ноябрь 2015
TensorFlow — это бесплатная библиотека Python с открытым исходным кодом, предназначенная для решения ряда задач, связанных с потоком данных и дифференцируемым программированием. Тем не менее, символическая математическая библиотека TensorFlow является одной из наиболее широко используемых библиотек машинного обучения Python.
Разработанный Google Brain для внутреннего использования, библиотека используется для коммерческих и исследовательских целей.
Тензорными являются N-мерные матрицы, которые представляют данные. Библиотека TensorFlow позволяет писать новые алгоритмы, включающие большое количество тензорных операций.
Поскольку нейронные сети могут быть выражены в виде вычислительных графов, они могут быть легко реализованы с использованием библиотеки TensorFlow в виде последовательности операций над тензорами.
- Позволяет визуализировать каждую часть графа
- Полностью бесплатный и открытый исходный код
- Легко обучается на CPU (центральный процессор) и GPU (ядро процессора) для распределенных вычислений
- Огромная поддержка сообщества
- Обеспечивает гибкость в своей работоспособности. Части, которые требуются больше всего, могут быть сделаны автономными
- Поддерживает обучение нескольких нейронных сетей и нескольких графических процессоров для создания эффективных моделей в крупных системах
- Использует методы, подобные XLA, для ускорения операций линейной алгебры
- Для проектов машинного обучения
- Для проектов нейронных сетей
- В автоматизированном программном обеспечении для создания титров, таких как DeepDream
- Машинное обучение в продуктах Google, таких как Google Photos и Google Voice Search
Изучайте Python сейчас и да прибудет с вами сила!
- python
- programming languages
- progress
- программирование
19 полезных библиотек для Python
Библиотеки — это готовые модули кода, которые используют разработчики, чтобы не писать один и тот же код несколько раз. В этой статье делимся подборкой самых полезных библиотек Python, рассказываем, как их установить, а также коротко описываем возможности.
К началу 2023 года Python остается одним из самых популярных языков программирования. Кроме простоты и легкости синтаксиса, он также отличается множеством подключаемых библиотек. В Python их более 137000, и практически каждый день это число растет.
Стандартные библиотеки Python
Стандартные библиотеки Python — это модули кода, которые доступны разработчикам без дополнительной установки
Например, библиотека math в Python дает возможность выполнять самые разные математические функции: находить целое от вещественного числа (math.trunc(x)) , вычислять логарифмы (math.log(x[, base])) или значение числа (math.pi) . А библиотека os Python необходима для работы с файловой системой компьютера и операционной системой.
Другие стандартные библиотеки — random и datetime . Первая дает инструменты для работы со случайными числами, а вторая незаменима для программ, которые оперируют временем и датами.
Стандартные библиотеки Python не требуют отдельного подключения. Чтобы использовать их функционал, достаточно просто в начале программы написать import и название библиотеки.
import math
Как подключить библиотеку Python
Большинство других библиотек Python требуют отдельного подключения. Но сделать это не сложно. При использовании современной версии Python 2.7.9 и выше или 3.4 и выше необходимый для подключения библиотек инструмент — система управления библиотеками PIP – устанавливается автоматически. Поэтому, чтобы установить библиотеку, вам достаточно сделать всего три шага:
- Войдите в командную строку.
- На Mac OS нажмите клавиши Command + Space , введите в появившемся окне слово Terminal и нажмите Enter /
- На Windows нажмите клавиши Win + R , введите в появившемся окне cmd и нажмите Enter .
- Чтобы проверить, установлен ли у вас PIP , а заодно обновить его до последней версии, введите в командную строку следующие команды и нажмите Enter :
- Для Mac OS: pip install –U pip
- Для Windows: python -m pip install -U pip
- Теперь просто введите pip install и название библиотеки. Например, pip install pandas или pip install theano , а затем нажмите Enter . Файлы библиотеки автоматически загрузятся на компьютер, и она установится.
Узнать, какие библиотеки Python подойдут под ваши задачи, можно из этой статьи и с помощью агрегатора библиотек — pypi.org.
Разберем несколько библиотек для решения задач из разных сфер — веб-разработки, Data Science, дата-аналитики, визуализации данных и создания Telegram-ботов. Под описанием каждой библиотеки приведем код для установки.
Станьте профессиональным Python-разработчиком с нуля за 10 месяцев На Хекслете есть профессия «Python-разработчик». Пройдите ее, чтобы изучить самый популярный язык программирования, освоить его фреймворки и создать большое портфолио с проектами на GitHub.
Библиотеки Python для веб-разработки
Среди веб-разработчиков на Python чаще работают бэкендеры — возможно, вы слышали про популярные у них фреймворки Django и Tornado. Еще на этом языке делают парсеры — программы для сбора данных с разных страниц в интернете.
HTTPX
HTTPX — одна из главных библиотек для бэкенд-разработчиков. В отличие от другой популярной библиотеки — Requests , HTTPX позволяет работать не только с синхронными, но и с асинхронными HTTP-запросами. Эта библиотека также поддерживает современную версию протокола — HTTP2 и довольно проста в использовании.
Код для установки:
pip install httpx
Celery
Celery нужна для работы с фоновыми задачами. Она позволяет выстраивать их в очередь и распределять выполнение между разными процессорами и устройствами. Это помогает уменьшить нагрузку на процессор и выполнять трудоемкие задачи без ущерба производительности. Больше всего Celery полезна для разработчиков приложений.
pip install celery
Scrapy
Scrapy – это библиотека, с которой удобно собирать данные для вашего приложения. Ее используют для написания поисковых роботов (веб-краулеров) и других алгоритмов для сбора данных. Она поддерживает асинхронность и поэтому позволяет быстро и эффективно решать самые разные задачи: от загрузки веб-страниц до их обработки и сохранения в различных форматах.
pip install scrapy
Dash
Dash — это библиотека Python для работы над веб-приложениями. Ее отличает доступный инструментарий для создания графических интерфейсов (GUI), через которые пользователь может работать с данными. А еще в ней удобно делать приложения с интерактивными диаграммами, графиками, дашбордами.
pip install dash
Изучите Django и начните работать с базами данных с помощью ORM Чтобы создавать сайты и веб-сервисы на Python, недостаточно знать сам язык. Нужно также понимать протокол HTTP, разбираться в веб-серверах и многом другом. Пройдите трек «Веб-разработка на Django» на Хекслете и найдите еще одно применение вашим навыкам Python-разработки.
Библиотеки Python для Machine Learning
Специалистам по машинному обучению в первую очередь важно обучать различные модели на данных и применять их для классификации, регрессии, кластеризации и решения других задач.
NumPy
NumPy — библиотека, известная не только программистам, работающим с Python. Она позволяет хранить и редактировать данные в n-мерных массивах, что в некоторых случаях намного надежнее обычных списков в Python. В основе NumPy — возможность выполнять очень сложные математические преобразования.
pip install numpy
Pandas
Pandas — это основная библиотека Python для наиболее трудоемких задач в машинном обучении: подготовки и первичного анализа данных. С помощью Pandas удобно фильтровать, объединять и группировать данные, а также строить модели интерпретации любого уровня сложности.
pip install pandas
TensorFlow
TensorFlow — это библиотека популярная у разработчиков нейронных сетей. Она использует тензоры — многомерные массивы, которые дают возможность работать с несколькими сетями одновременно. Также TensorFlow часто используется для распознавания изображений и рукописного текста.
pip install tensorflow
LightGBM
LightGBM — библиотека, созданная сотрудниками Microsoft для работы в сфере машинного обучения. Ее ключевая особенность — быстрая реализация градиентного бустинга. Это такой принцип машинного обучения, который помогает разработчикам создавать новые алгоритмы, используя многоуровневые решения.
pip install lightgbm
Читайте также: Как программировать на Python в Windows. Разбираем WSL
Библиотеки Python для форматирования и очистки данных
Среди аналитиков и научных работников на Python востребованы библиотеки для форматирования и очистки данных. Они помогают приводить данные к нужному виду, удалять пропуски и выбросы, объединять разные источники данных и так далее. Без таких библиотек работа с данными была бы гораздо сложнее и дольше.
Цифровых данных с каждым днем становится больше, и для упрощения их обработки нужны специальные инструменты. В Python есть множество библиотек, которые помогают приводить данные к нужному виду: удалять пропуски и выбросы, объединять разные источники данных.
Dora
Dora — это библиотека для очистки и разведочного анализа данных, которая значительно упрощает решение задач Data Science. С ее помощью можно преобразовывать категориальные данные в порядковые, менять и удалять столбцы, выделять, извлекать и визуализировать признаки и решать много других задач.
pip install dora
Datacleaner
Datacleaner нужна для автоматической очистки и подготовки данных к анализу. Она позволяет удалять строки без указанного значения, кодировать нечисловые переменные, работать с фреймами Pandas и решать множество других задач. Datacleaner проста в использовании, так что подойдет и начинающим пользователям.
pip install datacleaner
Tabulate
Tabulate используется для создания таблиц с удобным дизайном. В ней есть множество функций форматирования для удобного вывода словарей, списков, двумерных массивов библиотек NumPy и Pandas . Кроме консоли Tabulate поддерживает выгрузку данных и в различных веб-форматах — от HTML до Markdown Extra.
pip install tabulate
Scrubadub
Scrubadub – это библиотека, особенно полезная для работы с конфиденциальными данными. Она предлагает множество гибких инструментов для удаления из массива данных имен, телефонов, URL-адресов, ID и других важных данных.
pip install scrubadub
Библиотеки Python для визуализации данных
Библиотеки для визуализации данных позволяют создавать разнообразные графики, диаграммы, дашборды и другие изображения, которые помогают представить данные. С помощью таких библиотек можно сделать данные более привлекательными и понятными для аудитории.
Matplotlib
Matplotlib – одна из главных библиотек для визуализации данных на Python. Многие другие библиотеки, например, Cartopy или Seaborn используют для работы с графиками элементы именно этой библиотеки. У Matplotlib есть понятный объектно-ориентированный интерфейс и удобный API для встраивания в другие приложения.
pip install matplotlib
Altair
Altair — это библиотека Python для статистической визуализации. Она носит «декларативный» характер: разработчикам не нужно писать объемный код для визуализации, а достаточно указать на связь с данными. Altair не поддерживает 3D, но особенно полезен для создания составных и комплексных 2D-графиков.
pip install altair
Bokeh
Bokeh – библиотека визуализации данных, оптимизированная под браузеры. Она поддерживает работу с веб-приложениями и JSON-объектами, а также оптимизирована под работу с данными в реальном времени. Особенно часто Bokeh применяют для создания интерактивных визуализаций.
pip install bokeh
Leather
Leather — это совсем новая библиотека визуализации данных для Python. Она наиболее полезна, когда задачу нужно решить как можно быстрее. В отличие от ряда подобных библиотек, Lether способна взаимодействовать с широким разнообразием данных и выводить их через векторную графику.
pip install leather
Библиотеки Python для создания Telegram-ботов
Telegram-боты — то, что сделало Python особенно популярным на постсоветском пространстве. Боты используют для разных задач — от записи на публичные лекции до оказания помощи или написания текстовых RPG.
Aiogram
Aiogram – это удобная и полностью асинхронная библиотека для создания ботов. Написанные с ее помощью боты отличаются высокой скоростью работы и способностью оперативно справляться с большим трафиком.
pip install aiogram
Python-telegram-bot
Python-telegram-bot – одна из самых старых библиотек для создания ботов c синхронным режимом работы. Кроме реализации чистого API эта библиотека содержит ряд высокоуровневых классов, упрощающих разработку ботов.
pip install python-telegram-bot
Telebot
Telebot – библиотека, которая в большей степени подойдет начинающим разработчикам. Она проста в использовании, требует меньших объемов кода и способна работать как синхронно, так и асинхронно.
pip install telebot
Итог
Мы рассмотрели 19 библиотек для Python, применяющихся в наиболее популярных областях программирования. Какую выбрать – зависит от ваших задач. Если вы опытный разработчик и не нашли в списке библиотеку, о которой точно должен знать каждый — расскажите о ней в комментариях.
Станьте профессиональным Python-разработчиком с нуля за 10 месяцев На Хекслете есть профессия «Python-разработчик». Пройдите ее, чтобы изучить самый популярный язык программирования, освоить его фреймворки и создать большое портфолио с проектами на GitHub.
Полезные библиотеки для Python: чем пользуются разработчики
Мария Жарова Эксперт по Python и математике для Data Science, ментор одного из проектов на курсе по Data Science.
Библиотеки Python — это файлы с шаблонами кода. Их создали для того, чтобы люди не набирали каждый раз заново один и тот же код: достаточно открыть файл, вставить свои данные и получить результат. Рассказываем, какие библиотеки часто используют разработчики на Python.
Для работы с приложениями
Одна из областей применения Python — разработка веб-приложений и десктопных программ. Библиотеки помогают сделать процесс проще. Requests. Упрощает генерацию HTTP-запросов к другим сервисам, помогает писать их очень просто и быстро. Код получается лаконичным, а запрос легко настроить и отправить. Библиотека поддерживает множество функций и написана понятным языком.
Освойте профессию
«Fullstack-разработчик на Python»
Fullstack-разработчик на Python
Fullstack-разработчики могут в одиночку сделать IT-проект от архитектуры до интерфейса. Их навыки востребованы у работодателей, особенно в стартапах. Научитесь программировать на Python и JavaScript и создавайте сервисы с нуля.
Профессия / 12 месяцев
Fullstack-разработчик на Python
Создавайте веб-проекты самостоятельно
4 490 ₽/мес 7 483 ₽/мес
HTTPX. Расширение для Requests. Оно поддерживает все функции библиотеки, помогает работать с HTTP и асинхронностью. HTTPX помогает отправлять и получать запросы, работать с клиент-серверными протоколами взаимодействия веб-сервера и приложения. Когда нужно принимать важные решения, связанные с будущим, профессией и самоопределением, бывает страшно. Но важный шаг к избавлению от страха — озвучить его. Сделайте это, ответив на пять коротких вопросов. Ссылка в конце статьи. Retrying. Автоматизирует повторные вызовы. Если действие в коде, например запрос к внешнему источнику, не выполнилось и вернуло ошибку, с помощью Retrying можно настроить автоматические повторные попытки. Количество попыток и возможные изменения в запросах тоже настраиваются. Celery. Помогает правильно распределить множество задач в больших проектах, расставить приоритеты и выполнить их в оптимальной последовательности. Часто используется в backend-разработке, например с фреймворком Django. Dramatiq. По назначению библиотека похожа на Celery, но считается более новой и работает иначе. Она нужна для распределения задач, которые выполняются фоново. Библиотека лишена ряда недостатков Celery и более удобна в использовании. Flask. Микрофреймворк для создания простейших веб-приложений на Python. Flask помогает быстро создать простой проект и в дальнейшем масштабировать его. Он может интегрироваться с другими инструментами, например для дизайна и визуализации интерфейса.
Для машинного обучения и ИИ
Машинное обучение, анализ данных, искусственный интеллект — это области, в которых Python используется как основной язык. Он применяется в распознавании, предсказании, генерации данных, в том числе в компьютерном зрении, обработке естественного языка и других направлениях. Библиотеки как всегда упрощают работу с задачами. Также они используются для математических расчетов, построения графиков и пр. NumPy. Предназначена для работы с числами и сложной математикой. В первую очередь она облегчает расчеты с матрицами и многомерными массивами — именно в таком виде мы передаем любые данные на вход алгоритмам и моделям в методах глубокого обучения. Поэтому NumPy входит в базовый стек библиотек для Machine Learning. SciPy. Основана на NumPy, но имеет более широкий функционал. Она предназначена для глубоких и сложных математических операций и вычислений. В SciPy много функций для научного анализа и работы с высшей математикой.
Станьте Fullstack-разработчик на Python и найдите стабильную работу
на удаленке
Matplotlib. Используется для удобного построения графиков и визуализации результатов. Активно применяется в задачах анализа данных, при оценке и сравнении метрик алгоритмов, наблюдениях за моделью. Нередко Matplotlib используется в тандеме с NumPy и SciPy. Pillow. Предназначена для работы с картинками. Библиотека помогает их обрабатывать, применять различные эффекты, «чистить» от шума, работать с пикселями и делать многое другое. Обработка изображений обычно используется в задачах компьютерного зрения, когда нужно перевести картинку в понятный для компьютера формат. TensorFlow. Мощная библиотека для глубокого обучения. В основном TensorFlow используется для создания и обучения нейронных сетей. Ее можно представить как «ядро» для математических вычислений на Python. Она представляет данные как тензоры — векторы, которые складываются в графы. Keras. Упрощает использование TensorFlow. Keras отвечает за создание и настройку моделей и нейросетей, а TensorFlow выполняет в них расчеты. PyTorch. Еще одна библиотека с открытым исходным кодом от Facebook*, которая используется для глубокого обучения, создания и обучения нейронных сетей. Она более новая, чем TensorFlow и показывает по сравнению с ней лучшие результаты. Pymorphy2. Это морфологический анализатор русского языка. Он распознает и приводит слова к нормальной форме (например, «люди -> человек», или «гулял -> гулять»), меняет число, род, падеж и пр. Pymystem3. Библиотека от Яндекса имеет точно такой же функционал, как и Pymorphy2, и является ее альтернативой. Pymystem3 быстро и качественно распознает части речи и лексемы слова. OpenCV. Это открытая библиотека для работы с алгоритмами компьютерного зрения, машинным обучением и обработкой изображений.
Читайте также 15 библиотек Python для Data Science
Для логирования, обработки и форматирования данных
И при разработке, и при тестировании специалист должен иметь дело с большим количеством информации. «Сырые» данные нужно приводить к единому виду и очищать от лишних сведений, чтобы не вызывать ошибок и получать более точные результаты. Уже обработанные – заносить в различные системы. А саму работу программы следует логировать, то есть записывать сведения о ее действиях. Логи нужно форматировать, выводить и сохранять в файл. Для всего перечисленного тоже есть свои библиотеки. Rich. Позволяет форматировать текст, который Python выводит в консоль. Словосочетание Rich Text означает «отформатированный», «украшенный» текст. Можно сделать разноцветными сообщения в консоли, изменить в них начертание шрифта, выводить таблицы, пользоваться эмодзи. Это удобно, если нужны понятные и наглядные логи. Loguru. Инструмент для удобного и простого логирования данных. В Python есть встроенная библиотека logging, но многие разработчики считают ее неудобной из-за сложных конфигураций логов, неудобства настроек разного уровня логирования и ротации файлов логов. Поэтому они пишут логи через loguru. Библиотека имеет широкие настройки форматирования, удобна в работе и поддерживает множество функций, например архивирование файлов с логами. Pydantic. Помогает не только обрабатывать данные: она вносит в Python строгую типизацию и четкость в работе. Но обычно ее используют для валидации и парсинга: Pydantic проверяет и приводит данные из других сервисов к единому виду. Разнородные данные сложно воспринимать и программе, и человеку. Dateparser. Инструмент находит и определяет даты в массиве данных. Он работает с разными форматами записи: и строгими, и «человекопонятными». Dateparser сможет найти дату и формата «25.06.1999», и формата «вчера» или «месяц назад». В основном библиотека используется при парсинге данных.
Для отслеживания и анализа
Во время работы программы разработчику часто необходимо «следить» за ее поведением и вовремя обнаруживать неполадки. Библиотеки ниже помогают решить эту задачу. Py-spy. Следит за тем, что и как выполняет программа, сколько времени и ресурсов она тратит на разные задачи, мониторит ее работу. Py-spy сначала обращается к системе компьютера, а затем сохраняет и выводит полученную информацию, которую можно использовать в работе. Вам не нужно перезагружать или модифицировать работающую программу: инструмент помогает получать информацию, не затрагивая исходный код. Библиотека удобна при поиске багов, особенно если нельзя переписать код. Pympler. Мониторит и анализирует память, которая используется при исполнении кода программ на Python. Инструмент находит ее избыточное потребление, утечки и другие баги. С помощью Pympler можно узнать все о размере и длительности процессов приложения на Python за время работы.
Для тестирования
Для проверки работоспособности программ обычно устраивают тестирование. Это отдельное направление в IT. Для кода на Python также пишут тесты, генерируют для них данные, меняют настройки среды и многое другое. Для упрощения таких задач тоже существуют специальные библиотеки. Responses. Выше мы говорили про requests — это ее противоположность. Responses помогает генерировать различные ответы на запросы и затем анализировать их результаты. В отличие от requests, responses используется в основном при тестировании — помогает проверять, как приложение реагирует на разные ответы внешнего сервиса. Freezegun. Библиотека поможет, если нужно протестировать работу программы в конкретный период. Она «замораживает» параметры даты и времени на определенной точке, нужной программисту. Это может быть полезно, например, если тестируемая программа должна работать по-разному в зависимости от времени суток или дня недели. Faker. Для тестирования функциональности приложения часто нужно заполнять его данными, например о пользователях. Использовать реальные персональные данные в такой ситуации некорректно и небезопасно. Поэтому лучше воспользоваться Faker — библиотекой, которая помогает сгенерировать большое количество ненастоящей информации. Это могут быть ФИО, телефоны, даты рождения, данные карточек и многое другое. Factory_boy. Еще один инструмент для генерирования данных. В отличие от Faker, он генерирует фикстуры — блоки кода, которые выполняются до или после тестовых функций. Фикстуры помогают привести приложение в нужное состояние, задать исходные данные или сгенерировать информацию для теста. Эта библиотека упрощает их создание и применяется в основном в unit-тестировании.
Для других задач
У Python много и других вариантов применения: написание скриптов, автоматизация рутинных задач в разработке и так далее. Вот несколько полезных библиотек, которые могут серьезно улучшить жизнь разработчику. Funcy. Это набор утилит для практического применения, набор конструкций, которые упрощают код. Он облегчает написание программ и работу с простыми, но однообразными действиями. Например, Funcy упрощает повседневные задачи разработчика, например помогает быстро просмотреть структуру данных или модифицировать функцию. Tqdm. Библиотека, полезная для написания скриптов. Она генерирует прогресс-бары, которые показывают продвижение по коду и оставшееся время его выполнения. Программа, которая долго работает, — «черный ящик» для разработчика: он не знает, зависла она или нет, на каком этапе выполнения сейчас находится. Tqdm помогает легко и быстро отслеживать ее состояние и получать больше информации. Информация о выполнении программы будет выводиться в консоль в удобном для разработчика виде. Black. В разработке есть понятие — код-стайл, или code style. Это набор соглашений о том, как правильно оформлять код. Разработчики должны придерживаться код-стайла, чтобы легче понимать код друг друга. Соглашение об оформлении кода на Python называется PEP8. Писать рекомендуется в соответствии с ним, но проверять оформление вручную может быть долго и неудобно, а библиотека black проводит такие проверки автоматически. Это автоформатер: он исправляет нарушения код-стайла и делает код более чистым. Пройдите опрос: Копилка страхов Skillfactory *Принадлежит компании Meta, которая признана экстремистской на территории РФ.
Топ-10 библиотек Python для Data Science
Уже довольно давно Python очаровывает ученых, занимающихся данными. Чем больше я взаимодействую с ресурсами, литературой, курсами, тренингами и людьми в науке о данных, тем более глубокие знания Python приобретаю. При этом, когда я только начинал развивать свои навыки Python, у меня был целый список библиотек, о которых мне предстояло узнать. И вот, через некоторое время.
Специалисты в области Data Science точно знают о библиотеках Python, которые можно использовать в науке о данных, но когда в интервью просят назвать их или указать их функцию, мы часто попадаем впросак или, возможно, не помним более 5 библиотек (это случилось со мной: / )
Сегодня я подготовил список из 10 библиотек Python, которые помогают в области Data Science, когда их использовать, каковы их особенности и преимущества.
В этой статье я кратко изложил 10 наиболее полезных библиотеках Python для data scientist’ов и инженеров, основываясь на моем недавнем опыте и исследованиях. Читайте статью до конца, чтобы узнать о 4 бонусных библиотеках!
1. Pandas
Pandas — это пакет Python с открытым исходным кодом, который предоставляет высокоэффективные, простые в использовании структуры данных и инструменты анализа для помеченных данных на языке программирования Python. Pandas расшифровывается как библиотека анализа данных Python. Кто-нибудь знал об этом?
Когда использовать? Pandas — это идеальный инструмент для обработки данных. Он предназначен для быстрой и простой обработки данных, чтения, агрегирования и визуализации.
Pandas берет данные в файле CSV или TSV или базу данных SQL и создает объект Python со строками и столбцами, который называется фреймом данных. Фрейм данных очень похож на таблицу в статистическом программном обеспечении, скажем, в Excel или SPSS.
Что можно делать с помощью Pandas?
1. Индексирование, манипулирование, переименование, сортировка, объединение фрейма данных;
2. Обновить, добавить, удалить столбцы из фрейма данных;
3. Восстановить недостающие файлы, обработать недостающие данные или NAN;
4. Построить гистограмму или прямоугольную диаграмму.
Это делает Pandas фундаментальной библиотекой в изучении Python для Data Science. Если вам интересно узнать 10 приемов Python Pandas, которые сделают вашу работу более эффективной, читайте нашу статью.
2. NumPy
NumPy — один из самых фундаментальных пакетов в Python — универсальный пакет для обработки массивов. Он предоставляет высокопроизводительные объекты многомерных массивов и инструменты для работы с массивами. NumPy — это эффективный контейнер универсальных многомерных данных.
Основной объект NumPy — это однородный многомерный массив. Это таблица элементов или чисел одного и того же типа данных, проиндексированная набором натуральных чисел. В NumPy размеры называются осями, а число осей называется рангом. Класс массива NumPy называется ndarray, он же array.
Когда использовать? NumPy используется для обработки массивов, в которых хранятся значения одного и того же типа данных. NumPy облегчает математические операции над массивами и их векторизацию. Это значительно повышает производительность и, соответственно, ускоряет время выполнения.
Что можно делать с помощью NumPy?
1. Основные операции с массивами: добавление, умножение, срез, выравнивание, изменение формы, индексирование массивов;
2. Расширенные операции с массивами: стековые массивы, разбиение на секции, широковещательные массивы;
3. Работа с DateTime или линейной алгеброй;
4. Основные нарезки и расширенное индексирование в NumPy Python.
О 4 приемах Python NumPy, которые должен знать каждый новичок, читайте здесь.
3. SciPy
Библиотека SciPy является одним из ключевых пакетов, которые составляют стек SciPy. Теперь есть разница между SciPy Stack и библиотекой SciPy. SciPy основывается на объекте массива NumPy и является частью стека, который включает в себя такие инструменты, как Matplotlib, Pandas и SymPy с дополнительными инструментами.
Библиотека SciPy содержит модули для эффективных математических процедур, таких как линейная алгебра, интерполяция, оптимизация, интеграция и статистика. Основной функционал библиотеки SciPy построен на NumPy и его массивах.
Когда использовать? SciPy использует массивы в качестве базовой структуры данных. Он имеет различные модули для выполнения общих задач научного программирования, таких как линейная алгебра, интеграция, матанализ, обыкновенные дифференциальные уравнения и обработка сигналов.
Что можно делать с помощью SciPy?
1. Математические, научные, инженерные вычисления;
2. Процедуры численной интеграции и оптимизации;
3. Поиск минимумов и максимумов функций;
4. Вычисление интегралов функции;
5. Поддержка специальных функций;
6. Работа с генетическими алгоритмами;
7. Решение обыкновенных дифференциальных уравнений.
4. Matplotlib
Это, несомненно, моя любимая и основная библиотека Python. Вы можете создавать истории с данными, визуализированными с помощью Matplotlib. Еще одна библиотека из стека SciPy — Matplotlib — строит 2D-фигуры.
Когда использовать? Matplotlib — это библиотека Python, предоставляющая API для встраивания графиков в приложения. Очень напоминает MATLAB, встроенный в язык программирования Python.
Что можно делать с помощью Matplotlib?
Гистограммы, столбцовые диаграммы, точечные диаграммы, круговые диаграммы — Matplotlib может отображать широкий спектр визуализаций. Приложив немного усилий, с Matplotlib, вы можете создавать любые визуализации:
1. Линейные диаграммы;
2. Точечные диаграммы;
3. Диаграммы с областями;
4. Столбцовые диаграммы и гистограммы;
5. Круговые диаграммы;
6. Диаграммы «стебель-листья»;
7. Контурные графики;
8. Поля векторов;
Matplotlib также облегчает использование меток, сеток, легенд и некоторых других объектов форматирования. В общем, речь идет обо всем, что можно нарисовать!
5. Seaborn
Итак, когда вы читаете официальную документацию по Seaborn, она определяется как библиотека визуализации данных на основе Matplotlib, предоставляющем высокоуровневый интерфейс для изображения интересных и информативных статистических графиков. Проще говоря, seaborn — это расширение Matplotlib с дополнительными возможностями.
Так в чем разница между Matplotlib и Seaborn? Matplotlib используется для основного построения столбцовых, круговых, линейных, точечных диаграмм и пр., в то время как Seaborn предоставляет множество шаблонов визуализации с меньшим количеством синтаксических правил, причем более простых.
Что можно делать с помощью Seaborn?
1. Определять отношения между несколькими переменными (корреляция);
2. Соблюдать качественные переменные для агрегированных статистических данных;
3. Анализировать одномерные или двумерные распределения и сравнивать их между различными подмножествами данных;
4. Построить модели линейной регрессии для зависимых переменных;
5. Обеспечить многоуровневые абстракции, многосюжетные сетки.
Seaborn — это отличный вариант для библиотек визуализации R, таких как corrplot и ggplot.
6. Scikit Learn
Scikit Learn, представленный миру как проект Google Summer of Code, представляет собой надежную библиотеку машинного обучения для Python. Он включает в себя алгоритмы ML, такие как SVM, random forests, k-means кластеризацию, спектральную кластеризацию, сдвиг среднего значения, перекрестную проверку и многие другие. Даже NumPy, SciPy и связанные с ними научные операции поддерживаются Scikit Learn, при этом Scikit Learn является частью SciPy Stack.
Когда использовать? Scikit-learn предоставляет ряд контролируемых и неконтролируемых алгоритмов обучения через согласованный интерфейс в Python. Scikit learn будет вашим руководством для того, чтобы модели контролируемого обучения, такие как Naive Bayes, группировали непомеченные данные, такие как KMeans.
Что можно делать с помощью Scikit Learn?
1. Классификация: обнаружение спама, распознавание изображений;
2. Кластеризация: воздействия лекарственных препаратов, цена акций;
3. Регрессия: сегментация клиентов, группировка результатов эксперимента;
4. Уменьшение размерности: визуализация, повышенная эффективность;
5. Выбор модели: повышенная точность благодаря настройке параметров;
6. Предварительная обработка: подготовка входных данных в виде текста для обработки с помощью алгоритмов машинного обучения.
Scikit Learn фокусируется на моделировании данных; не манипулировании данными. Для обобщения и манипуляции у нас есть NumPy и Pandas.
7. TensorFlow
Еще в 2017 году я получил TensorFlow USB в знак признательности за то, что был потрясающим докладчиком на мероприятии Google WTM, хаха. На USB был загружен официальный документ о TensorFlow. Не имея представления о том, что такое TensorFlow, я его погуглил.
TensorFlow — это библиотека AI, которая помогает разработчикам создавать крупномасштабные нейронные сети со многими слоями, используя графики потоков данных. TensorFlow также облегчает построение моделей глубокого обучения, продвигает современную технологию ML / AI и позволяет легко развертывать приложения на базе ML.
Одним из наиболее развитых веб-сайтов среди всех библиотек является TensorFlow. Гиганты, такие как Google, Coca-Cola, Airbnb, Twitter, Intel, DeepMind, все используют TensorFlow!
Когда использовать? TensorFlow достаточно эффективен, когда дело доходит до классификации, восприятия, понимания, обнаружения, прогнозирования и создания данных.
Что можно делать с помощью TensorFlow?
1. Распознавание голоса / звука — IoT, автомобильная промышленность, безопасность, UX/UI, телекоммуникации;
2. Анализ настроений — в основном для CRM или CX;
3. Текстовые Приложения — Обнаружение угроз, Google Translate, Gmail Smart Reply;
4. Распознавание лиц — Facebook’s Deep Face, Photo tagging, Smart Unlock;
5. Временной ряд — рекомендации от Amazon, Google и Netflix;
6. Обнаружение видео — обнаружение движения, обнаружение угроз в реальном времени в играх, безопасности, аэропортах.
Более подробно о TensorFlow рассказываем в статье.
8. Keras
Keras — это высокоуровневый API TensorFlow для создания и обучения кода глубоких нейронных сетей. Это библиотека нейронных сетей с открытым исходным кодом на Python. С Keras статистическое моделирование, работа с изображениями и текстом намного легче с упрощенным кодированием для глубокого обучения.
В чем разница между Keras и TensorFlow?
Keras — это нейросетевая библиотека, написанная на языке Python, а TensorFlow — это библиотека с открытым исходным кодом для различных задач машинного обучения. TensorFlow предоставляет как высокоуровневые, так и низкоуровневые API, в то время как Keras предоставляет только высокоуровневые API. Keras создан для Python и делает его более удобным, модульным и компонуемым, чем TensorFlow.
Что можно делать с помощью Keras?
1. Определить процентную точность;
2. Функция вычисления потерь;
3. Создать пользовательские функциональные слои;
4. Встроенные функции обработки данных и изображений;
5. Функции с повторяющимися блоками кода: глубиной 20, 50, 100 слоев.
9. Statsmodels
Когда я сначала изучил R, проведение статистических тестов и исследование статистических данных казались мне самым простым в R и я избегал Python для статистического анализа до тех пор, пока я не изучил Statsmodels в Python.
Когда использовать? Statsmodels — это универсальный пакет Python, который обеспечивает простые вычисления для описательной статистики и оценки и формирования статистических моделей.
Что можно делать с помощью Statsmodels?
1. Линейная регрессия;
3. Метод наименьшего квадрата (OLS);
4. Анализ выживания;
5. Обобщенные линейные модели и байесовская модель;
6. Однофакторный и двухфакторный анализ, проверка гипотез (в основном, что может сделать R!).
10. Plotly
Plotly — это типичная графическая библиотека для Python. Пользователи могут импортировать, копировать, вставлять или передавать данные, которые должны быть проанализированы и визуализированы. Plotly предлагает изолированную версию Python (где вы можете запустить Python, ограниченный в своих возможностях). Теперь осталось понять, что значит ограниченная версия, но я точно знаю, что Plotly облегчает задачу!
Когда использовать? Вы можете использовать Plotly, если хотите создавать и отображать фигуры, обновлять фигуры, наводить курсор на текст для получения подробной информации. Plotly также имеет дополнительную функцию отправки данных на облачные серверы. Это интересно!
Что можно делать с помощью Plotly?
Библиотека графиков Plotly имеет широкий спектр графиков, которые вы можете построить:
1. Основные диаграммы: линейные, круговые, точечные, пузырьковые, Ганта, санбёрст, древовидные, санкей, графики с областями;
2. Статистические стили и стили Seaborn: ошибки, гистограммы, диаграммы Facet и Trellis, деревообразные графики, графики-скрипки, линии тренда;
3. Научные карты: контур, троичный сюжет, логарифмический график, поля векторов, ковровый график (Carpet plot), радарчарт, тепловые карты Роза ветров и Полярный сюжет;
4. Финансовые графики;
8. Взаимодействие Jupyter Widgets.
Plotly это типичная библиотека графиков. Подумайте о визуализации и Plotly сделает это!
Итак, мы изучили путеводитель по топ 10 библиотекам Python для науки о данных, а теперь рассмотрим наши 4 бонусные библиотеки!
1. SpaСy
SpaCy — это библиотека с открытым исходным кодом, используемая для продвинутого NLP для Python и Cython (язык программирования Python, обеспечивающий ощущение и производительность в стиле C с кодом Python, а также синтаксис на основе C).
2. Bokeh
Bokeh — это библиотека Python, которую я бы назвал интерактивной визуализацией данных. С такими инструментами, как Tableau, QlikView или PowerBI, зачем нам Bokeh? Во-первых, Bokeh позволяет очень быстро строить сложные статистические графики с помощью простых команд. Он поддерживает вывод HTML, блокнота или сервера. Во-вторых, можно интегрировать визуализацию Bokeh в приложения Flask и Django или визуализации, написанные в других библиотеках, таких как matplotlib, seaborn, ggplot.
3. Gensim
Gensim — это то, что, по моему мнению, сильно отличается от того, что мы встречали до этого. Он автоматически извлекает семантические темы из документов без труда и с высокой эффективностью. Алгоритмы Gensim не контролируются, это означает, что никакой человеческий ввод не требуется — просто текстовые документы, и затем выполняется извлечение.
4. NLTK
NLTK (Natural Language Toolkit) в основном работает с человеческим языком, а не с компьютерным, чтобы применять обработку естественного языка (NLP). Он содержит библиотеки обработки текста, с помощью которых вы можете выполнять токенизацию, парсинг, классификацию, выделение, тегирование и семантическое обоснование данных. На основе функционала этой библиотеки может показаться, что она повторяется, но каждая библиотека в Python была написана для повышения некоторой эффективности.