Найти тему
Ирисхан Межидов

Десятка лучших библиотек для программирования на Python

Python
Python

Python это высокоуровневый язык программирования, простой в изучении, объектоориентированный, модульный и подчеркнуто легкочитаемый. Python широко применяется в образовательной сфере, для научных вычислений, больших данных и машинного обучения, в веб- и интернет-разработке, графике, GUI, играх и других направлениях.

Поскольку экосистема Python огромна, существуют бесчисленные библиотеки, упрощающие программирование на этом языке. Благодаря таким библиотекам становится возможным более легкое выполнение определенных задач без необходимости написания излишнего кода.

Если вы занимаетесь программированием на Python, вам полезно ознакомиться с наиболее популярными библиотеками. В нашей статье описываются десять из них.

Начнем с библиотек общего назначения, таких как Requests, Simplejson, SQLAlchemy, NumPy, а затем обратимся к более “продвинутым” библиотекам для машинного обучения, научных данных, построения GUI и научных вычислений.

1. Requests

Имея больше 26 тысяч звезд на GitHub и тысячи скачиваний ежедневно, Requests занимает первую строчку рейтинга самых популярных и полезных библиотек для разработки на Python. Эта библиотека используется в проектах Spotify, Microsoft, NPR, Heroku, Amazon, BuzzFeed, Reddit, Twitter, Mozzila (список можно продолжать еще долго).

Requests уменьшает тяжелую ручную работу и автоматизирует такие задачи как добавление строки запроса к URL, шифрование форм отправки данных, постоянное HTTP-соединение, объединение HTTP-соединений и т. д. путем использования urllib3.

Для облегчения разработки также обеспечивается автоматическое дешифрование контента. Библиотека предлагает загрузку других функций, таких как журнал аутентификации, элегантные key/value cookies, Unicode-представление для аттрибута body объекта response, потоковое скачивание, тайм-аут соединения, поддержка .netrc.

В общем, Requests – не лишняя библиотека для любого веб-проекта.

2. Simplejson

Это еще одна очень популярная библиотека и одна из самых скачиваемых. Simplejson это быстрый, точный и расширяемый json кодировщик и декодировщик, который поддерживает Python 3.3+ с обратной совместимостью с Python 2.5.

Simplejson написан на Python и не имеет внешних зависимостей. Он также включает расширения, написанные на С для представлений с особо высоким быстродействием. Помимо дефолтной UTF-8, декодер Simplejson может оперировать строками JSON, поступающими в любой кодировке.

С дефолтным Kwarg для дампов кодировщик Simplejson можут быть использован для обеспечения сериализации даже неподдерживаемых объектов.

Библиотека Simplejson может осуществлять заключительную обработку JSON- объектов с помощью кваргов object_hook или object_pairs_hook. Реализация таких протоколов как JSON-RPC существенно облегчается с использованием Simplejson.

3. SQL Alchemy

Базы данных — неотъемлемая часть разработки приложений, а в мире Python SQLAlchemy — необходимая библиотека для работы с базами данных. Предлагая полный комплект устойчивых моделей предметных областей для высокоэффективного доступа к базам данных, она действует как набор инструментов SQL и объектно-реляционное отображение.

Вызывает интерес модель отображения данных, в которой различные классы отображаются в базу данных различными способами, что позволяет объектной модели и схеме базы данных быть изначально развязанными.

Разработчики получают полный контроль и обзор конструкции SQL, ничто не прячется за стенами упаковщиков.

Подход этой библиотеки гораздо более современный и эффективный, если сравнивать с доступными инструментами SQL / ORM, а потому в списке самых полезных библиотек Python она занимает высокое место.

После выхода последнего релиза SQLAlchemy выбивается в лидеры; ее используют такие организации как Freshbooks, Survey Monkey, Mozilla, reddit, Yelp и многие другие.

4. TensorFlow

TensorFlow идет за основными библиотеками и погружает вас мир машинного интеллекта. Это опенсорсная библиотека Python, успешно применяемая для произведения расчетов с использованием графов потоков данных.

Вычисление изначально представляется в форме графов, где каждый узел графа предназначен для выполнения математических операций. Фактическое вычисление, тем не менее, производится по запросу, что позволяет повысить продуктивность сложных расчетов.

Библиотека учитывает нужды комплексных вычислений: она обслуживает вычисления, распределенные на CPU/GPU и несколько систем, заботясь о дублировании.

TensorFlow это бесплатная библиотека с открытым исходным кодом. Она была разработана инженерами Google, работающими над проектом Google Brain.

5. Scrapy

Scrapy это фреймворк, использующийся для извлечения структурированных данных с вебсайтов. Это быстрая, простая, расширяемая, легкая в использовании библиотека. Ее использование включает добычу данных, обработку информации, поисковый робот, извлечение данных с помощью API и многое другое.

Scrapy «из коробки» обеспечивает поддержку извлечения данных из HTML/XML с использованием выражений Xpath и селекторов CSS, интерактивную оболочку консоли, экспорт данных в json, csv, xml, бэк-энд хранилище ftp, s3, локальное хранилище, управление cookies и сессиями, сжатие, кэширование, аутентификацию, user-agent спуфинг.

Scrapy пзволяет вам прописывать правила для извлечения данных. Библиотека написана на Python, ее конструкция предполагает возможность расширения за счет нового функционала, и вы можете перенести ее для запуска на Linux, Windows, Mac и BSD.

6. Matplotlib

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

Matplotlib можно использовать а скриптах, написанных на Python, в оболочке IPython и на множестве разнообразных серверов веб-приложений. Это значительно упрощает сложные задачи на построение. Написав небольшой кусочек кода, вы сможете генерировать графики, гистограммы, диаграммы разброса данных.

Модули pyplot и Ipython combo предлагают MATLAB в качестве интерфейса для построения простых графиков. Вы можете полностью контролировать вид линий, свойства системы координат и тому подобное. Это, несомненно, одна из лучших библиотек для числовых построений, доступных для Python.

Такие инструменты как basemap, cartopy, mplot3d, axes_grid увеличивают возможности Mataplotlib.

Эта библиотека – детище Джона Хантера. Она применяется в тысячах исследовательских, научных и издательских проектов.

7. Scikit-Learn

Высокоуровневая библиотека, содержащая алгоритмы, подобные random forest, готовые к использованию в проектах, связанных с машинным обучением.

Языком Scikit-learn по большей части является Python, но также задействуется Cython для улучшения производительности в некоторых внутренних алгоритмах. Оболочка Cython вокруг LIBSVM используется для поддержки векторной реализации, а LIBLINEAR – для вычислительной регрессии и линейной опоры векторных машин. Scikit-learn также использует CBLAS, который является C-интерфейсом для пользования библиотекой Basic Linear Algebra Subprograms (CBLAS).

Эта библиотека построена на SciPy и распространяется на условиях лицензии 3-Clause BSD с открытым исходным кодом для исследований, а также для коммерческого использования.

8. Pygame

Любите разработку игр? Pygame предназначенная для создания мультимедиа-приложений с играми включительно. Она построена на мощной Simple Directmedia Library (SDL). Эта библиотека среди прочего используется для обучения детей разработке игр. Имеет открытый исходный код.

Сила Pygame в том, что она не требует OpenGL, позволяет использование множественных CPU для работы в многоядерной системе для супервысокой производительности, а также использование оптимизированных кодов на C и Assembly для внутренних функций.

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

9. Arrow

Arrow предназначена для преодоления недостатков встроенного в Python функционала даты и времени, который не совсем понятен и легок. Может быть использована в качестве прекрасной замены для модулей datetime и time в Python.

10. wxPython

wxPython входит в тройку пользующихся наибольшей популярностью GUI-библиотек для Python (остальные две – PyQT и Tkinter). wxPython интуитивна для разработчиков python и проста в использовании, это прекрасная смесь из C++ wxWidget-ов и программирования на Python.

wxPython применяется в качестве расширяющего модуля Python и является кросс-платформенным набором инструментов, запускаемым на многих платформах без нужды в модификациях. Поддерживается на многих платформах, включая Unix, Macintosh OS X и Microsoft Windows (32 bit).

wxPython предлагает тысячи элементов, позволяющих с легкостью создавать трудоемкие и функциональные GUI приложения на Python.