Привет, Хабр! Представляю вам перевод статьи "6 Essential Python Libraries for Python Programming" автора VijayDeveloper. 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).
2006 (Как NumPy).
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
На этом завершается список 6 основных библиотек Python для программирования на Python. Какие библиотеки должны были/не должны были попасть в этот список? Дайте нам знать в ваших комментариях.