10 полезных Python библиотек, о которых вы не слышали


Оглавление (нажмите, чтобы открыть):

12 лучших Python-библиотек для Data Science

В последние годы Python стал востребованным в области Data Science. Это стало возможным благодаря появлению библиотек, способных обрабатывать и визуализировать большие данные на уровне MATLAB, Mathematica и R. Далее поговорим о 15 лучших.

NumPy

Python SciPy Stack — набор библиотек, специально предназначенных для научных вычислений. Каждый, кто собрался использовать Python в науке, должен познакомиться с этим стеком.
Самый фундаментальный пакет — NumPy. Он позволяет выполнять основные операции над n-массивами и матрицами: сложение вычитание, деление, умножение, транспонирование, вычисление определителя и т. д. Благодаря механизму векторизации, NumPy повышает производительность и, соответственно, ускоряет выполнение операций.

SciPy

SciPy — библиотека в составе Python SciPy Stack, не запутайтесь. Она содержит модули для линейной алгебры, оптимизации, интеграции и статистики. SciPy работает совместно с NumPy, что позволяет ей значительно расширить функциональность. Два аргумента, почему эта библиотека действительно хороша:

  1. Наличие подпрограмм, таких как численная интеграция и оптимизация, для повышения производительности.
  2. Подробная документация на каждую функцию.

Pandas

Pandas — это пакет, предназначенный для простой и интуитивно понятной работы с «помеченными» и «реляционными» данными. Тоже работает в связке с NumPy, и помимо математических вычислений обеспечивает их агрегацию и визуализацию.

Matplotlib

Переходим к визуализации, и на очереди ещё одна библиотека из пакета SciPy Stack. Именно возможности Matplotlib позволяют рассматривать Python, как полноправного конкурента MATLAB или Mathematica. С её помощью вы создадите:

  • Линейные графики;
  • Графики рассеяния;
  • Гистограммы;
  • Круговые диаграммы;
  • Стволовые участки;
  • Контурные участки;
  • Участки колчана;
  • Спектрограммы.

Библиотека низкоуровневая, что означает большой объём кода для расширенной визуализации. Но производительность и работа с привычным языком позволяют закрыть глаза на этот недостаток.
Matplotlib является основным инструментом для визуализации данных на языке Python, поддерживается различными платформами и IDE (iPython, Jupyter и пр.)

Seaborn

Seaborn базируется на Matplotlib, но оптимизирован для визуализации статистических моделей: тепловые карты, распределения, результаты математических операций. Несмотря на указанные возможности, большинство разработчиков использует библиотеку для отображения простых временных распределений.

Bokeh

В отличие от Seaborn, Bokeh не зависит от Matplotlib. Основная область его применения — веб, где визуализация данных происходит согласно стилю d3. js (Data-Driven Documents). Визуально графики, построенные при помощи Bokeh, выглядят привлекательнее, чем в предыдущих двух случаях.

Plotly

Plotly — онлайн инструмент .для визуализации данных с поддержкой Python, R, MATLAB, Perl, Julia, Arduino и REST. Библиотека содержит шаблоны и заготовки для повышения производительности. Есть один минус — исполнение кода происходит на серверной стороне, после чего изображение готово к публикации в интернете. Впрочем, есть способ это обойти.

SciKit-Learn

Возвращаемся к пакету библиотек SciPy Stack, чтобы представить SciKit — инструмент для обработки изображений и имитации искусственного интеллекта. Он основывается на библиотеке SciPy и отвечает за реализацию алгоритмов машинного обучения. SciKit, как и его математическая основа, демонстрирует высокую производительность, и имеет качественную документацию.

Theano

Theano — одна из самых мощных библиотек в нашем списке. Вот несколько причин:

  • тесная интеграция с NumPy;
  • использование CPU и GPU для повышения производительности;
  • встроенные механизмы оптимизации кода;
  • расширения для юнит-тестирования и самопроверки.

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

TensorFlow

Библиотека от Google была разработана специально для обучения нейронных сетей. Вы можете прямо сейчас оценить эффективность TensorFlow на примере голосового помощника или в игре «Quick, Draw». Библиотека использует многоуровневую систему узлов для обработки большого количества данных, что расширяет сферу её использования далеко за научную область.

Keras

Keras использует возможности TensorFlow и Theano в качестве компонентов. Минималистичный подход в дизайне и невероятная расширяемость позволяет быстро начать работу с библиотекой, и не менять её для серьёзного моделирования. Keras также используется в построении и обучении нейронных сетей, а также при решении задачи распознавания устной речи.

NLTK расшифровывается как Natural Language Toolkit, что недвусмысленно говорит о назначении библиотеки. Её Преимущественно использует для анализа текстовых документов:

  • тегирования;
  • токенизации;
  • идентификации имен;
  • построения связей между предложениями и частями текста;
  • семантические рассуждения.

Это лишь малая часть Python-библиотек, используемых в Data Science. Некоторые из них приносят общую практическую пользу, другие предлагают оптимизацию под конкретные задачи. Попробуйте их все и выберите для себя лучшие. Только начинаете свой путь в Python? Тогда записывайтесь на наш онлайн-интенсив по основам языка Питон.

Не забудьте поделиться результатами в комментариях.

В последние годы Python стал востребованным в области Data Science. Это стало возможным благодаря появлению библиотек, способных обрабатывать и визуализировать большие данные на уровне MATLAB, Mathematica и R. Далее поговорим о 15 лучших.

NumPy

Python SciPy Stack — набор библиотек, специально предназначенных для научных вычислений. Каждый, кто собрался использовать Python в науке, должен познакомиться с этим стеком.
Самый фундаментальный пакет — NumPy. Он позволяет выполнять основные операции над n-массивами и матрицами: сложение вычитание, деление, умножение, транспонирование, вычисление определителя и т. д. Благодаря механизму векторизации, NumPy повышает производительность и, соответственно, ускоряет выполнение операций.

SciPy

SciPy — библиотека в составе Python SciPy Stack, не запутайтесь. Она содержит модули для линейной алгебры, оптимизации, интеграции и статистики. SciPy работает совместно с NumPy, что позволяет ей значительно расширить функциональность. Два аргумента, почему эта библиотека действительно хороша:

  1. Наличие подпрограмм, таких как численная интеграция и оптимизация, для повышения производительности.
  2. Подробная документация на каждую функцию.


Pandas

Pandas — это пакет, предназначенный для простой и интуитивно понятной работы с «помеченными» и «реляционными» данными. Тоже работает в связке с NumPy, и помимо математических вычислений обеспечивает их агрегацию и визуализацию.

Matplotlib

Переходим к визуализации, и на очереди ещё одна библиотека из пакета SciPy Stack. Именно возможности Matplotlib позволяют рассматривать Python, как полноправного конкурента MATLAB или Mathematica. С её помощью вы создадите:

  • Линейные графики;
  • Графики рассеяния;
  • Гистограммы;
  • Круговые диаграммы;
  • Стволовые участки;
  • Контурные участки;
  • Участки колчана;
  • Спектрограммы.

Библиотека низкоуровневая, что означает большой объём кода для расширенной визуализации. Но производительность и работа с привычным языком позволяют закрыть глаза на этот недостаток.
Matplotlib является основным инструментом для визуализации данных на языке Python, поддерживается различными платформами и IDE (iPython, Jupyter и пр.)

Seaborn

Seaborn базируется на Matplotlib, но оптимизирован для визуализации статистических моделей: тепловые карты, распределения, результаты математических операций. Несмотря на указанные возможности, большинство разработчиков использует библиотеку для отображения простых временных распределений.

Bokeh

В отличие от Seaborn, Bokeh не зависит от Matplotlib. Основная область его применения — веб, где визуализация данных происходит согласно стилю d3. js (Data-Driven Documents). Визуально графики, построенные при помощи Bokeh, выглядят привлекательнее, чем в предыдущих двух случаях.

Plotly

Plotly — онлайн инструмент .для визуализации данных с поддержкой Python, R, MATLAB, Perl, Julia, Arduino и REST. Библиотека содержит шаблоны и заготовки для повышения производительности. Есть один минус — исполнение кода происходит на серверной стороне, после чего изображение готово к публикации в интернете. Впрочем, есть способ это обойти.

SciKit-Learn

Возвращаемся к пакету библиотек SciPy Stack, чтобы представить SciKit — инструмент для обработки изображений и имитации искусственного интеллекта. Он основывается на библиотеке SciPy и отвечает за реализацию алгоритмов машинного обучения. SciKit, как и его математическая основа, демонстрирует высокую производительность, и имеет качественную документацию.

Theano

Theano — одна из самых мощных библиотек в нашем списке. Вот несколько причин:

  • тесная интеграция с NumPy;
  • использование CPU и GPU для повышения производительности;
  • встроенные механизмы оптимизации кода;
  • расширения для юнит-тестирования и самопроверки.

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

TensorFlow

Библиотека от Google была разработана специально для обучения нейронных сетей. Вы можете прямо сейчас оценить эффективность TensorFlow на примере голосового помощника или в игре «Quick, Draw». Библиотека использует многоуровневую систему узлов для обработки большого количества данных, что расширяет сферу её использования далеко за научную область.

Keras

Keras использует возможности TensorFlow и Theano в качестве компонентов. Минималистичный подход в дизайне и невероятная расширяемость позволяет быстро начать работу с библиотекой, и не менять её для серьёзного моделирования. Keras также используется в построении и обучении нейронных сетей, а также при решении задачи распознавания устной речи.

NLTK расшифровывается как Natural Language Toolkit, что недвусмысленно говорит о назначении библиотеки. Её Преимущественно использует для анализа текстовых документов:

  • тегирования;
  • токенизации;
  • идентификации имен;
  • построения связей между предложениями и частями текста;
  • семантические рассуждения.

Это лишь малая часть Python-библиотек, используемых в Data Science. Некоторые из них приносят общую практическую пользу, другие предлагают оптимизацию под конкретные задачи. Попробуйте их все и выберите для себя лучшие. Только начинаете свой путь в Python? Тогда записывайтесь на наш онлайн-интенсив по основам языка Питон.

Не забудьте поделиться результатами в комментариях.

Особенности Jupyter Notebook, о которых вы (может быть) не слышали

Jupyter Notebook – это крайне удобный инструмент для создания красивых аналитических отчетов, так как он позволяет хранить вместе код, изображения, комментарии, формулы и графики:

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

Jupyter поддерживает множество языков программирования и может быть легко запущен на любом сервере, необходим только доступ по ssh или http. К тому же это свободное ПО.

Основы

Список хоткеев вы найдете в Help > Keyboard Shortcuts (список периодически дополняется, так что не стесняйтесь заглядывать туда снова).

Отсюда можно получить представление о взаимодействии с блокнотом (notebook). Если вы будете постоянно работать c Jupyter, большинство комбинаций вы быстро выучите.

  • Esc + F позволит найти и заменить только в коде, не учитывая вывод;
  • Esc + O — переключиться на вывод ячейки;
  • Можно выбрать сразу несколько ячеек и удалить/скопировать/вырезать/вставить. Это полезно при необходимости перемещать части блокнота.

Экспорт блокнота

Простейший способ — сохранить блокнот в формате IPython Notebook (.ipynb), но так как их используют не все, есть и другие варианты:

  • Преобразовать блокнот в html-файл;
  • Опубликовать его в gists, который умеет обрабатывать файлы этого формата (см. пример);
  • Сохранить ваш блокнот, например, в dropbox, а затем открыть ссылку в nbviewer;
  • Блокноты умеет открывать github (есть некоторые ограничения, но в большинстве случаев работает), что очень полезно, так как позволяет хранить историю исследования (если исследование доступно широкой публике).


Построение графиков

Есть несколько вариантов построения графиков:

  • matplotlib (фактически, стардарт), включается командой %matplotlib inline ;
  • %matplotlib notebook — интерактивный режим, но работает очень медленно, так как обработка графика происходит на стороне сервера;
  • mpld3 — альтернативная библиотека визуализации (использующая D3) для matplotlib. Она довольно хороша, хотя и неполна.
  • bokeh лучше подходит для построения интерактивных графиков;
  • plot.ly строит красивые графики, но это будет стоить денег.
Мастер Йода рекомендует:  15 свежих Javascript-библиотек Javascript

Magic-команды

Магические команды (magics) превращают обычный python в магический python. Magic-команды — это ключ к могуществу IPython’а.

Можно управлять переменными среды для вашего блокнота без перезапуска Jupyter-сервера. Некоторые библиотеки (такие, как theano) используют переменные среды, чтобы контролировать поведение, и %env — самый удобный способ.

Выполнение shell-команд

В Notebook можно вызвать любую shell-команду. Это особенно удобно для управления виртуальной средой.

Подавление вывода последней строки

Иногда вывод не нужен, и в этом случае можно или использовать команду pass с новой строки, или поставить точку запятой в конце строки:

Просмотр исходников функций/классов/чего угодно с помощью вопросительного знака (?, ??)

вызовет следующее всплывающее окно:

Используйте %run для выполнения кода на Python

%run может выполнить код на языке Python из файлов с расширением .py — это поведение хорошо задокументировано.

Но эта команда может выполнять и другие блокноты из Jupyter! Иногда это очень полезно.

Обратите внимание, что %run — это не то же, что импорт python-модуля.

Загрузит код напрямую в ячейку. Можно выбрать файл локально или из сети.

Если раскомментировать и выполнить код ниже, содержание ячейки заменится на содержание файла.

%store — ленивая передача данных между блокнотами

%who для анализа переменных глобального пространства имен

Тайминг

Если вы хотите замерить время выполнения программы или найти узкое место в коде, на помощь придет IPython.

Профилирование: %prun, %lprun, %mprun

%lprun позволяет профилировать с точностью до строк кода, но, кажется, в последнем релизе Python он не работает, так что в этот раз обойдемся без магии:

Дебаг с помощью %debug

У Jupyter есть собственный интерфейс для ipdb, что позволяет зайти внутрь функции и посмотреть, что в ней происходит.

Это не PyCharm — потребуется время, чтобы освоить, но при необходимости дебага на сервере это может быть единственным вариантом (кроме pdb через терминал).

Немного более простой способ — команда %pdb, которая активирует дебаггер, когда выбрасывается исключение:

Запись формул в LateX

Маркдаун ячейки могут отрисовывать формулы LateX с помощью MathJax.

Маркдаун — важная часть блокнотов, так что не забывайте использовать его выразительные возможности!

Использование разных языков внутри одного блокнота

Если вы соскучились по другим языкам программирования, можете использовать их в Jupyter Notebook:

но, разумеется, среда должна быть настроена соответствующим образом.

Анализ Big Data

Существует несколько решений, чтобы запрашивать/обрабатывать большие объемы данных:

  • ipyparallel (бывший ipython cluster) — хороший инструмент для простых операций map-reduce на Python. Мы используем его в rep для обучения большого количества моделей машинного обучения параллельно.
  • pyspark
  • spark-sql magic %%sql

Ваши коллеги могут экспериментировать с вашим кодом, ничего не устанавливая

Такие сервисы, как mybinder, предоставляют доступ к Jupiter Notebook со всеми установленными библиотеками, так что пользователь может с полчаса поиграться с вашим кодом, имея под рукой только браузер.

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


Написание функций на других языках

Иногда скорости NumPy бывает недостаточно, и мне необходимо написать немного быстрого кода. В принципе, можно собрать нужные функции в динамические библиотеки, а затем написать обертку на Python…

Но гораздо лучше, когда скучная часть работы сделана за нас, правда?

Ведь можно написать нужные функции на Cython или Fortran и использовать их напрямую из кода на Python.

Для начала нужно установить модули

Лично я предпочитаю Fortran, на котором, я считаю, удобно писать функции для обработки большого объема численных данных. Подробнее о его использовании можно почитать здесь.

Должен заметить, что есть и другие способы ускорить ваш код на Python. Примеры можно найти в моем блокноте.

Множественный курсор

С недавнего времени Jupyter поддерживает множественный курсор, такой, как в Sublime или IntelliJ!

Расширения Jupyter-contrib

устанавливаются с помощью

Это целое семейство различных расширений, включая, например, jupyter spell-checker и code-formatter, которых по умолчанию в Jupyter нет.

RISE: презентации в Notebook

Расширение, написанное Damian Avila, позволяет демонстрировать блокноты как презентации. Пример такой презентации: bollwyvl.github.io/live_reveal/#/7

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

Система вывода Jupyter

Блокноты отображаются в HTML, и вывод ячейки тоже может быть в формате HTML, так что вы можете выводить все, что душе угодно: видео, аудио, изображения.

В этом примере я просматриваю содержимое директории с картинками в моем репозитории и отображаю первые пять из них.

Я мог бы получить тот же список bash-командой,

потому что magic-команды и bash-вызовы возвращают переменные Python:

Повторное подключение к ядру

Давным давно, если вы запускали какой-нибудь долгий процесс и в какой-то момент подключение к серверу IPython прерывалось, вы полностью теряли возможность отслеживать процесс вычислений (если только вы не записывали эти данные в файл). Приходилось или прерывать работу ядра с риском потерять некоторые результаты, или ждать окончания процесса, не имея представления о том, что в данный момент происходит.

Теперь опция Reconnect to kernel позволяет заново подключиться к работающему ядру, не прерывая вычислений, и увидеть последний вывод (хотя какая-то часть вывода все же будет потеряна).

Пишите ваши посты в Notebook

такие, как этот. Используйте nbconvert, чтобы экспортировать в HTML.

Полезные ссылки

Notebook с оригиналом этого поста можно скачать из репозитория.

Топ 10 python идиом, о которых я бы хотел узнать раньше

Очередной мой перевод полезной статьи найденной pythondigest.ru. Читал как про себя, хотя я и не такой древний 😉

Далее перевод поста из блога David Taylor`a который зовет себя человеком эпохи Возрождения.

Я програмирую всю свою жизнь, но никогда не работал программистом. Большая часть моих работ были сделаны на Visual Basic, потому что он был для меня наиболее комфортным, а также на некоторых других языках (R, C, JavaScript, и т.д. . Pascal, AppleScript, гипертекст и другие, которые я узнал в 1979 году, если посмотреть достаточно далеко назад).

Пару лет назад, я решил перейти на Python исключительно, чтобы улучшить свой код. И в результате я заново начал изобретать множество велосипедов, этому я не сильно сопротивлялся, поскольку мне нравится решать головоломки.
Иногда это хорошо, для повышения питонячести ( owlman: не знаю как по другому перевести — Pythonesque ), но время от времени я ловил себя на, «ага!» в моментах, когда понимал, что делаю код грубым и избыточным без причины.

Вот список из десяти Python идиом, которые сделали бы мою жизнь намного легче, найди я их раньше. В этот список не попали некоторые идиомы, такие как списковые и лямбда-функции, которые являются очень питонячими и очень эффективными и замечательными, но их очень трудно не заметить, потому что они часто упоминаются в ответах на StackOverflow! Также не упомянуты ‘ x if y else z‘ конструкции, декораторы и генераторы, потому что я использую их не очень часто.

1. Python 3-стиль вывода в Python 2

Одна из вещей, которые заставили меня сосредоточиться на Python 2, это фиаско Python 3. Наконец, я начал с Python 2, потому что большинство библиотек, которые я хотел использовать не были совместимы c Python 3, и я решил, что если мне потребуется, то я хоть и с трудом но переведу свой код позже.

Но на самом деле, наибольшие различия в повседневном программировании являются печать и деление, в связи с этим я просто использую стиль из будущего. Теперь, когда почти все библиотеки, которые использую в значительной степени являются v3-совместимым, я делаю переключатель в будущее.

Да, и вот пасхальное яйцо для C программистов:

2. enumerate(list)

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

3. Цепочки операторов сравнения

Так как я привык к статически типизированным языкам, то мне никогда не приходило в голову поставить два оператора сравнения в одном выражении. Во многих языках, «4 > 3 > 2» вернется как ложные, потому что (4 > 3) будет оцениваться как логическое, а затем (True > 2) будет оцениваться как ложное.

4. collections.Counter


Библиотека collections — лучшее, что когда-либо было. Stackoverflow вовремя развернул меня к упорядоченным словарям, но я продолжал использовать снипет для создания словаря с нумерацией вывода результатов в своём коде. Однажды, я открыл для себя использование collections.deque.

5. Постижение Dict

Посвещение в Python программиста это постижение списков, но в конце концов я понял, что постижение Dict так же полезно — особенно для их реверсирования.

6. Выполнение shell команд с субпроцессами

Для работы с файлами я использую библиотеки операционной системы; Теперь я могу даже программным путем вызывать сложные инструменты командной строки, такие как FFmpeg для редактирования видео

(И да, я использую Windows, как и все мои клиенты. Но у меня есть хороший комплекс стесняться этого!)

Обратите внимание, что отдельный подпроцесс я бы сделал библиотекой ОС; Просто хотел чтобы все команды были знакомы. И вообще, shell=True это очень плохая идея, я использовал его здесь, так чтобы вывод команды отображался в клетки блокнота IPython. Дети, не пытайтесь повторять это дома!

7. Методы словаря .get() и .iteritems()

Имеем значение по умолчанию, если ключ не существует, также как enumerate() для списков, вы можете перебрать цепочки ключ — значение в словарях.

8. Кортеж распаковки для переключения переменных

Знаете сколько раз я использовал третью, промежуточную переменную в VB? c = a; a = b; b = c?

9. Инструменты самопроверки

Я был в курсе dir(), потому как я полагал, что help() будет делать то же самое, что и в IPython`e? Магическая команда. Она делает намного больше. (Последний раз это сообщение было обновлено после какого-то великого совета от Reddit в /r/python, который, на самом деле, я хотел бы я знать и раньше!)

10. PEP-8 совместимые цепочки кода

PEP8 руководство по стилю Python кода. Среди прочего, он рекомендует, чтобы строки кода не были более 80 символов длиной и без пробелов в конце строк.

Это может быть достигнуто с помощью комбинации обратных косых черт «\;» круглые скобки «()» с запятыми, «;» или операцией сложения «+», но каждое из этих решений неудобно для многострочных строк. Есть многострочная строка — тройная цитата, но она не влезает без пробелов.

Мой топ-7 библиотек для Python для компьютерного зрения

Published by Kirill IO on 02/08/2020

Когда я начинал изучение компьютерного зрения, я работал в банке и писал программы на C#. Как оказалось, C# хорошо подходит для написания бизнес-логики, сайтов и больших систем BI, но для машинного обучения и обработки изображений он подходит гораздо хуже. Дело не в синтаксисе и не в возможностях языка, а в малом количестве библиотек для обработки данных. На помощь приходит Python, с его практически всеохватывающим PIP и сильным коммьюнити в области DataScience и CV. Первые месяцы прошли в выборе набора библиотек для работы, как же я тогда хотел найти хороший список совместно работающих плагинов и заняться уже решением задач.

Этот список не претендует на законченность и правильность. Я перечислил библиотеки, которые я использую почти каждый день для решения задач по DataScience и компьютерному зрению. У каждой библиотеки будет описание для чего она используется и как ее установить. Если вы можете посоветовать как расширить этот список или заменить что то из него на более новое – пишите в комментарии или на почту. Пользователи Anaconda, для вас этот список – лишь малая часть того, что есть в этом замечательном пакете.

Базовые:

NumPy это больше чем просто библиотека для Python, мало какие плагины для обработки данных могут обойтись без нее. NumPy позволяет быстро и удобно работать с такими структурами данных как большие многомерные массивы. В чем отличие их от встроенных массивов в Python, как в форме List, так и из библиотеки collections? NumPy написать на быстром коде C++ и все операции с массивами уже содержат максимально оптимизированный код, ускорение в сравнении со стандартными библиотеками может составлять сотни раз! Как данные возможности помогают при обработке изображений? Для примера рассмотрим стандартное изображение Лены(цензурное). В представлении NumPy оно будет представлять из себя массив 512 × 512 × 4 значений в формате RGB, где каждое число представляет из себя R G B A значение пикселя. Все значения находятся в промежутке 0

Библиотеки, о которых вы не слышали (PYTHON)

Koleman

Пакетов для Python создано уже очень много, поэтому ни один человек физически не может изучить их все. Только PyPi насчитывает 47 000 пакетов. В то время как pandas, scikit-learn или numpy у многих на слуху, про перечисленные здесь — уже достаточно старые, но всё ещё полезные — библиотеки часто забывают.

. Так же стоит отметить отличную документацию и бесчисленное количество отсылок к “Назад в будущее”.

from delorean import Delorean
EST = «US/Eastern»
d = Delorean(timezone=EST)

Prettytable
Я почти уверен, что про эту библиотеку вы не слышали, ведь она

, который в мире кода является точным аналогом Сибири.
Несмотря на то, что она была сослана в это холодное, заснеженное и пустынное место, Prettytable остаётся отличной библиотекой для формирования красивого вывода в терминал:

from prettytable import PrettyTable
table = PrettyTable([«животное», «свирепость»])
table.add_row([«Оборотень», 100])
table.add_row([«Гризли», 87])
table.add_row([«Кролик из Кэрбенног», 110])
table.add_row([«Кот», -1])
table.add_row([«Утконос», 23])
table.add_row([«Дельфин», 63])
table.add_row([«Альбатрос», 44])
table.sort_key(«свирепость»)

table.reversesort = True

Wget
Наверняка вам ни раз приходилось писать методы для какой-то специфической работы с вебом. Но я вас огорчу – вы делали это зря. Ведь уже есть

. Рекурсивно скачать сайт? Забрать со страницы все изображения? Для wget это не проблема.

import wget
wget.download(«

. По непонятным причинам эта библиотека используется гораздо реже, чем scikit-learn, а ведь очень зря.

from pymc.examples import disaster_model
from pymc import MCMC
M = MCMC(disaster_model)
M.sample(iter=10000, burn=1000, thin=10)

[——————100%——————] 10000 of 10000 complete in 1.4 sec

Sh
Я не могу себе позволить, чтобы вы ушли с этой страницы, не зная о

. Как можно догадаться, sh импортирует в Python команды shell в виде функций. Это – суперудобная возможность, когда вы помните, как сделать что-то с помощью bash, но не помните, как это реализуется на Python (например, рекурсивный поиск по файлам).

from sh import find
find(«/tmp»)
/tmp/foo
/tmp/foo/file1.json
/tmp/foo/file2.json
/tmp/foo/file3.json

/tmp/foo/bar/file3.json

добавляет классных фич для сравнения данных. Может быть использована для связи записей в различных базах данных.

from fuzzywuzzy import fuzz
fuzz.ratio(«Hit me with your best shot», «Hit me with your pet shark»)
# 85

делает именно то, о чём вы подумали – выводит прогрессбар.

C o l o r a m a
Если уж вы занимаетесь добавление прогрессбаров в свои программы, то, может, стоит добавить ещё немного цвета? Справиться с этим вам поможет

Uuid
Наверняка вам приходилось генерировать для пользователей >


вам в этом поможет:

import uuid
print uuid.uuid4()

# e7bafa3d-274e-4b0a-b9cc-d898957b4b61

И если вы переживаете, что >

Стандартные библиотеки Python

Python — это один из самых популярных языков программирования для написания системных скриптов и программ. Это скриптовый язык, он очень простой для освоения и позволяет писать скрипты максимально быстро. И не только потому, что язык простой, а еще и из-за того, что для него написано множество различных библиотек и скриптов, которые вы можете использовать в своих проектах либо же просто скопировать тот или иной кусок кода в свою программу.

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

Стандартная библиотека Python

Эта статья не сможет охватить все модули python потому что их очень много. Поэтому мы поговорим про самые интересные и полезные. Дальше вы сможете понять на что способен этот язык. Список отсортирован по алфавиту.

  • audioop — это библиотека для работы со звуком. Она содержит несколько полезных функций для обработки записей 8, 16, 24 или 32 бит. Модуль поддерживает различные кодировки. Есть поддержка конвертации форматов, настройки битов, и множество других возможностей.
  • base64 — шифрование base64 стало очень популярным в последнее время. Эта библиотека позволяет шифровать бинарные данные в читаемые ASCII символы, а затем обратно раскодировать в бинарные данные. Можно кодировать не только последовательности байт, но и обычные строки.
  • calendar — как следует из названия, этот модуль позволяет работать с календарем. Вы можете выводить календарь, так же как это делает утилита cal в Linux. По умолчанию, началом недели считается понедельник, но можно поменять настройки на воскресение. Вы можете просматривать информацию о днях недели, месяца, года, выводить списки и многое другое.
  • cgi — несмотря на то, что лидером в плане серверного языка программирования является PHP, Python тоже поддерживает такую возможность. Модуль cgi позволяет интерпретатору обрабатывать скрипты по запросу веб-сервера и возвращать ему же результат обработки. С помощью модуля в скрипте мы можем получить переменные, переданные браузером с помощью GET или POST, а также влиять на отправляемые данные.
  • configparser — это простая библиотека, которая позволяет разбирать содержимое простейших конфигурационных файлов формата ini. Такие файлы очень часто используются в Windows. Вы можете не только читать содержимое файлов, но и изменять его.
  • csv — модуль, позволяющий работать с форматом файлов csv (Comma Separated Values). Этот формат очень популярен при импорте и экспорте из различных таблиц или баз данных. Модуль имеет два класса, reader и writer, которые позволяют читать и записывать данные в формат csv.
  • curses — наверное, уже многие слышали про движок псевдографического интерфейса curses. Он позволяет довольно просто реализовать простой графический интерфейс в терминале. С помощью этого модуля такая функция появляется в Python.
  • datetime — как и большинство языков высокого уровня, python позволяет работать с датой и временем. Эта библиотека реализует набор методов для получения информации, преобразования, изменения даты и времени. Можно преобразовать дату в строку или прочитать ее из строк различных форматов. Также можно выполнять арифметические операции с датами и временем.
  • decimal — этот модуль содержит функции для быстрого преобразования чисел с плавающей точкой. Также содержит несколько дополнительных возможностей для встроенного типа float.
  • difflib — эта библиотека содержит набор функций для сравнения различных последовательностей. Например, можно сравнивать файлы, строки, различную информацию в HTML и многое другое.
  • email — python поддерживает обработку email сообщений на уровне языка. Модуль не реализует никаких методов для отправки сообщений через SMTP или NNTP, этим занимаются другие протоколы. Здесь есть функции для разбора структуры email сообщений, проверки списка почты, преобразования и много другого.
  • gettext — этот модуль реализует функции локализации и интернационализации L10N для ваших программ на Python. Поддерживается стандартное API GNU gettext так и свое собственное API на основе классов. Все модули пишутся на вашем нативном языке, а затем к программе прикрепляется каталог для перевода на другие языки.
  • gzip, zlib — библиотеки python для работы со сжатыми данными. Вы можете не только распаковывать и упаковывать файлы, но и работать со строками, а также использовать пароли.
  • hashlib — этот модуль python предоставляет интерфейс для получения различных хэшей для данных. Поддерживаются такие алгоритмы: SHA1, SHA224, SHA256, SHA384, и SHA512, а также MD5.
  • html, http — эти модули работают в одной и той же области. Модуль http позволяет работать с интернет ресурсами по протоколу HTTP, отправлять запросы GET/POST, принимать запросы, обрабатывать Cookie и фактически реализовать свой клиент или сервер на Python. Библиотека html, в свою очередь, позволяет выполнять разбор html страниц.
  • io — это базовая библиотека, которая содержит основные функции для работы с потоками ввода/вывода. Поддерживаются различные виды потоков, текстовые, бинарные и RAW потоки. Каждый поток может иметь несколько атрибутов, это разрешения на только чтение, только запись и чтение запись.
  • itertools — недавно операторы итераций начали появляться в PHP. Язык программирования Python тоже имеет средства для организации итераций, похожих на Haskell, APL и SML. Модуль использует эффективные методы работы с памятью, а также имеет некоторые дополнительные функции.
  • json — библиотека python для работы с очень популярным сейчас форматом передачи данных — json. Есть функции как для разбора формата, так и для создания объектов для отправки.
  • logging — модуль для логирования в программах Python. Библиотека реализует удобную систему логирования, которая используется в стандартных модулях. Ее преимущество в том, что вы можете отключить ведение лога в любой момент одной строчкой или изменить его подробность.
  • match — библиотека содержит стандартные функции для работы с математикой. Вычисление корня, синусов, косинусов и другие подобные функции.
  • os — одна из самых важных библиотек python. Она предназначена для взаимодействия с операционной системой. Через нее вы можете работать с файлами, получить информацию об интерфейсах операционной системы и другое.
  • pathlib — позволяет работать с путями в файловой системе. Можно преобразовывать пути из одного типа в другой, выполнять с ними различные операции.
  • random — модуль реализует генератор псевдо-случайных чисел. Он работает на основе генератора случайности вашей операционной системы.
  • re — очень часто используемый модуль python, который содержит базовый набор функций для работы с регулярными выражениями синтаксиса perl. Есть методы для решения различных задач, таких как поиск, замена, редактирование, удаление и многое другое.
  • socket — python поддерживает работу с сокетами напрямую. Вы можете без модуля http или url подключатся к любому системному или сетевому сокету и использовать его.
  • sqlite — большинство программ в среде веб используют базу данных. Расширение sqlite позволяет вашей программе использовать высокопроизводительную базу данных, которая полностью хранится в одном файле, в папке с программой.
  • ssl — библиотека, которая позволяет работать с сертификатами ssl, используется для получения html страниц по протоколу https.
  • string — еще один часто используемый модуль, который содержит множество функций для работы со строками. Поддерживаются большинство функций, которые есть в других языках, например, слияние строк, удаление лишних символов, замена, поиск и так далее.
  • threading — библиотека реализует поддержку многопоточности для python. Здесь содержатся методы для управления потоками и получения информации о них;
  • time — по возможностях и назначению эта библиотека похожа на datetime. Только ее методы рассчитаны на работу с датой и временем. Здесь реализовано множество функций стандартной библиотеки Си.
  • tkinter — это стандартные библиотеки python 3 для реализации графического интерфейса программ с помощью инструментария Tk GUI. Этот интерфейс будет работать как в Windows, так и в Linux системах.
  • urllib и urllib2 — эти библиотеки python позволяют реализовать простой парсер или браузер на python. Вы можете в несколько строк получать и разбирать содержимое веб-страниц, работу с кукси, заголовками и другими вещами библиотека берет на себя.
  • xml — библиотека, которая помогает анализировать структуры XML, а также добавлять в структуру новые теги, менять значения существующих.

Выводы

В этой статье мы сделали небольшое описание библиотеки Python 3. Как видите, язык имеет множество различных функций уже в стандартной библиотеке, и еще больше в множестве модулей и скриптов доступных на просторах интернета.

Полезные библиотеки Python для работы с данными

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

В подготовке материала помогали:

  • Константин Башевой — старший аналитик «Ростелеком» и преподаватель «Курс по Python для анализа данных».
  • Пётр Ермаков — руководитель отдела аналитики в Mail.ru и преподаватель «Курс по Machine Learning».

Для удобства разделили библиотеки на четыре вида:

  • Основные
  • Для работы с данными
  • Для интеллектуального анализа и обработки естественного языка
  • Для визуализации

Основные библиотеки Python

Это список базовых библиотек, которые делают из языка программирования Python мощный и надежный инструмент для анализа и визуализации данных. На них основываются более специализированные библиотеки. Иногда их называют набором SciPy.

Jupyter

Интерактивная оболочка для языка программирования Python. Она предоставляет расширенную интроспекцию и дополнительный командный синтаксис; сохраняет историю ввода во всех сеансах, подсвечивает и автоматически дополняет код. Если вы когда-либо пользовались Mathematica или MATLAB, то разберетесь и в Jupyter.

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

С помощью Jupyterhub можно настроить совместную работу команды на сервере с корпоративной авторизацией. Пример небольшого анализа данных в браузере:

Pandas

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

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

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

Еще одна особенность Pandas — cкорость работы. Например, чтобы сгруппировать данные таблицы в 10 млн. строк, подсчитать средний чек и отсортировать результаты по убыванию, понадобится одна строчка кода и меньше пяти секунд:

NumPy

Основная библиотека Python, которая упрощает работу с векторами и матрицами. Содержит готовые методы для самых различных операций: от создания, изменения формы, умножения и расчета детерминанта матриц до решения линейных уравнений и сингулярного разложения. Например, возьмем такую систему уравнений:

Чтобы ее решить, достаточно воспользоваться методом lialg.solve:

import numpy as np

SciPy

Библиотека основывается на NumPy и расширяет ее возможности. Включает методы линейной алгебры и методы для работы с вероятностными распределениями, интегральным исчислением и преобразованиями Фурье. Например, для проведения T-теста двух выборок достаточно вызвать метод ttest_ind: stats.ttest_ind( data_list_1, data_list_2 ). SciPy похожа на Matlab и понимает формат mat.

Matplotlib

Низкоуровневая библиотека для создания двумерных диаграмм и графиков. С ее помощью можно построить любой график. Однако для сложной визуализации потребуется больше кода, чем в продвинутых библиотеках. Примеры визуализации:

Используемый код:

import matplotlib.pyplot as plt
import numpy as np

Читайте также

Библиотеки Python для работы с данными

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

Scikit-learn

Основывается на NumPy и SciPy. Предоставляет алгоритмы для машинного обучения и интеллектуального анализа данных: кластеризации, регрессии и классификации. Одна из самых лучших библиотек для компаний, работающих с огромным объемом данных. Ее используют Evernote, OKCupid, Spotify и Birchbox.

Theano

Библиотека используется для оценки и улучшения математических выражений. Синтаксис, как и в NumPy. Проводит необходимые расчеты с большим объемом данных в 100 раз быстрее, чем CPU, так как использует GPU. За это и ценится теми, кто занимается глубоким обучением и сталкивается с вычислительными задачами.

TensorFlow

Библиотека создана Google на замену DistBelief — фреймворк для обучения нейронных сетей. Используется для настройки, тренировки и применения искусственных нейронных сетей с многочисленными наборами данных. Благодаря этой библиотеке Google может определять объекты на фотографиях, а приложение для распознавания голоса — понимать речь.

Библиотеки Python для интеллектуального анализа и обработки естественного языка


Это список библиотек, которые используются для извлечения данных из интернет-ресурсов и обработки естественного языка.

Scrapy

Используется для создания ботов-пауков, которые сканируют страницы сайтов и собирают структурированные данные: цены, контактную информацию и URL-адреса. Кроме этого, Scrapy может извлекать данные из API.

Набор библиотек для обработки естественного языка. Основные функции: разметка текста, определение именованных объектов, отображение синтаксического дерева, раскрывающего части речи и зависимости. Используется для анализа тональности и автоматического обобщения. В наборе есть книга, посвященная анализу текста.

Pattern

Сочетает функциональность Scrapy и NLTK и предназначен для извлечения данных в интернете, естественной обработки языка, машинного обучения и анализа социальных сетей. Среди его инструментов есть поисковик, API для Google, Twitter и Wikipedia и алгоритмы текстового анализа, которые могут выполняться несколькими строками кода.

Библиотеки Python для визуализации

Это список библиотек, которые пригодятся в визуализации данных и построении графиков.

Seaborn

Библиотека более высокого уровня, чем matplotlib. С ее помощью проще создавать специфическую визуализацию: карты тепла, временные ряды и скрипичные диаграммы. Примеры визуализации:

Используемый код:

import seaborn as sns
sns.set(style=»whitegr >

# Load the example tips dataset
tips = sns.load_dataset(«tips»)

# Draw a nested violinplot and split the violins for easier comparison
sns.violinplot(x=»day», y=»total_bill», hue=»sex», data=tips, split=True,
inner=»quart», palette=<«Male»: «b», «Female»: «y»>)
sns.despine(left=True)

Bokeh

Создает интерактивные и масштабируемые графики в браузерах, используя виджеты JavaScript. Имеет три уровня интерфейса, от высокого, который позволяет быстро создавать сложные графики, до низкого. Примеры визуализации:

Используемый код:

import numpy as np

from bokeh.layouts import gridplot
from bokeh.plotting import figure, show, output_file

p1 = figure(title=»Legend Example», tools=TOOLS)

p1.circle(x, y, legend=»sin(x)»)
p1.circle(x, 2*y, legend=»2*sin(x)», color=»orange»)
p1.circle(x, 3*y, legend=»3*sin(x)», color=»green»)

p2 = figure(title=»Another Legend Example», tools=TOOLS)

p2.line(x, 2*y, legend=»2*sin(x)», line_dash=(4, 4), line_color=»orange», line_w >

p2.square(x, 3*y, legend=»3*sin(x)», fill_color=None, line_color=»green»)
p2.line(x, 3*y, legend=»3*sin(x)», line_color=»green»)

output_file(«legend.html», title=»legend.py example»)

Читайте также

Basemap

Используется для создания карт. На ее основе сделана библиотека Folium, с помощью которой создают интерактивные карты в интернете. Примеры визуализации, созданной с помощью Folium и Basemap:

Карта, созданная с помощью Basemap

Используемый код:

import numpy as np
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from datetime import datetime

# miller projection
map = Basemap(projection=’mill’,lon_0=180)

# plot coastlines, draw label meridians and parallels.
map.drawcoastlines()
map.drawparallels(np.arange(-90,90,30),labels=[1,0,0,0])
map.drawmer >

# fill continents ‘coral’ (with zorder=0), color wet areas ‘aqua’
map.drawmapboundary(fill_color=’aqua’)
map.fillcontinents(color=’coral’,lake_color=’aqua’)

# shade the night areas, with alpha transparency so the
# map shows through. Use current time in UTC.
date = datetime.utcnow()
CS=map.nightshade(date)
plt.title(‘Day/Night Map for %s (UTC)’ % date.strftime(«%d %b %Y %H:%M:%S»))
plt.show()

Читайте также

NetworkX

Используется для создания и анализа графов и сетевых структур. Предназначен для работы со стандартными и нестандартными форматами данных. Примеры визуализации:

Используемый код:

# Author: Aric Hagberg (hagberg@lanl.gov)

# Copyright (C) 2004-2020 by
# Aric Hagberg
# Dan Schult
# Pieter Swart
# All rights reserved.
# BSD license.

import matplotlib.pyplot as plt
import networkx as nx


G = nx.grid_2d_graph(5, 5) # 5×5 grid
try: # Python 2.6+
nx.write_adjlist(G, sys.stdout) # write adjacency list to screen
except TypeError: # Python 3.x
nx.write_adjlist(G, sys.stdout.buffer) # write adjacency list to screen
# write edgelist to grid.edgelist
nx. write_edgelist(G, path=»gr > # read edgelist from grid.edgelist
H = nx.read_edgelist(path=»gr >

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

А ты знал? 10 фактов о Python

Содержание статьи

1. Python работает практически везде

Python работает почти на всех известных платформах — от карманных компьютеров и смартфонов до серверов сети. Версии Python портированы под Windows, Linux/UNIX, macOS и macOS X, iPhone OS 2.0 и выше, Palm OS, OS/2, AS/400 и даже OS/390, Windows Mobile, Symbian и Android.

2. У Python древние корни

Некоторые программисты считают этот язык программирования молодым. Как сказать. Если сравнивать с языком C, то Python — молодой. Но работа над ним началась в конце 1980-х годов, а первая полноценная версия появилась в 1991 году. Так что свое совершеннолетие Python уже давно отметил. Это зрелый и развивающийся язык программирования, но никак не мертвый — как считают некоторые. Кстати, месяц назад, 17 июля 2020 года, вышла версия 3.6.2.

3. Поддержка «больших парней»

«Большие парни» — Google, Yahoo, NASA, Industrial Light & Magic и даже Microsoft — используют Python. Подтверждение легко найти в интернете. Так, Google предпочитает C++, Java и Python, а Microsoft даже открыла Python Developer Center.

4. Python — один из самых популярных в мире языков программирования

В соответствии с индексом TIOBE, Python занимает пятое место в мире! Только посмотри на рейтинг популярности языков программирования. На первом месте — Java, далее — семейство языков C, C++, C#. Если эти языки считать как один, то Python — на третьем месте.

5. Название Python произошло не от рептилии

Создатель языка Гвидо ван Россум заявил, что название языка происходит от ТВ-шоу «Летающий цирк Монти Пайтона». Да, об этом написано в FAQ, но кто ж его читает!

6. Популярные продукты Yahoo написаны на Python

Популярные программные продукты Yahoo, в том числе Django, TurboGears и Zope, написаны на Python.

7. Python совместим с .NET и Java Virtual Machine

Разработчики могут интегрировать Python с объектами COM (Component Object Model), Microsoft .NET и CORBA (Common Object Request Broker Architecture). Для Java-разработчиков есть Jython — версия Python для JVM. Разработчики .NET могут воспользоваться Python for .NET или IronPython — реализацией Python для .NET от Microsoft.

8. «Батарейка» внутри

«Батарейкой» Python-разработчики называют стандартную библиотеку, в которой есть все — от асинхронной обработки до работы с ZIP-архивами. Именно поэтому на Python можно реализовать приложение любой сложности.

9. Python поддерживает ICE

ICE (Internet Communications Engine) — объектная система, использующая механизм RPC. ICE создана под влиянием технологии CORBA. Но при этом Ice намного компактнее и проще, чем CORBA. Python поддерживает обе технологии.

10. Освоить Python проще, чем ты думаешь

Python — довольно простой в изучении язык программирования. Обучение программированию сейчас нередко рекомендуют начинать именно с него, и вполне вероятно, что когда-нибудь он займет и ту почетную нишу, которую когда-то занимал Turbo Pascal :). Можно приобрести хорошую книгу, а можно обратиться к профессионалам: освоить новую профессию и получить стопроцентное трудоустройство. Изучить Python и превратиться в Python-разработчика всего за один год помогут в GeekUniversity.

Список технологий, которые освоит выпускник

Преимущества получения специальности в GeekUniversity следующие.

  • Используются подходы ведущих учебных центров США. Студенту предстоит создать четыре проекта — как самостоятельно, так и в команде. Год в GeekUniversity — это год реального опыта разработки для резюме.
  • На уроках будет создано не простое приложение вроде «Привет, мир», а полноценное клиент-серверное приложение — платежная система. Студент научится работать с БД, создавать приложения с GUI и безопасные многопоточные приложения.
  • У студента будет личный наставник-куратор. Работа с наставником делает обучение эффективнее.
  • Цель GeekUniversity — трудоустройство выпускника. Трудоустройство гарантируется всем выпускникам.
  • GeekUniversity работает на основании государственной лицензии № 038188. Выпускнику выдается свидетельство государственного образца.

Свидетельство государственного образца

Получить дополнительную информацию об онлайн-университете можно, оставив заявку на сайте GeekUniversity.

10 полезных Python библиотек, о которых вы не слышали

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

В чем же «фишка» NumPy вы можете спросить.

Основным объектом NumPy является однородный многомерный массив (в numpy называется numpy.ndarray). Это многомерный массив элементов (обычно чисел), одного типа.

Здесь можно подчеркнуть одного типа .

Python и асинхронные задачи

Celery — распределенная очередь заданий И так, что же умеет Celery:

  • Выполнять задания асинхронно или синхронно
  • Выполнять периодические задания(умная замена crond)
  • Выполнять отложенные задания
  • Распределенное выполнение (может быть запущен на N серверах)
  • В пределах одного worker’а возможно конкурентное выполнение нескольких задач(одновременно)
  • Выполнять задание повторно, если вылез exception
  • Ограничивать количество заданий в единицу времени(rate limit, для задания или .

more .

Рисование графиков на Python

Графики бывают совсем разные. Де-факто стандартом в питоне для построения графиков является matplotlib. Это такой комбайн, который умеет очень много, даже 3Д графики.

Matplotlib написан и поддерживался в основном Джоном Хантером (англ. John Hunter) и распространяется на условиях BSD-подобной лицензии. Генерируемые в различных форматах изображения могут быть использованы в интерактивной графике, в научных публикациях, графическом интерфейсе пользователя, веб-приложениях, где требуется .

Python + GUI == PyQt

Qt — это инструментарий для разработки на C++, который предоставляет огромный спектр возможностей: от рисования GUI, до написания низкоуровневых серверов. Часто Qt применяют для создания GUI, в том числе в интерактивном режиме — можно перемещать виджеты на формы. Qt имеет отличную докумементацию, а также имеет привязку для Python — PyQt и PySide. (вторая еще с Qt5 не умеет работать)

Используя PyQt можно нарисовать .

Python + winapi

Пишите под windows, да еще и с Win API? Python здесь тоже может помочь, ведь для него есть библиотека pywin32 (http://sourceforge.net/projects/pywin32/). Данная библиотека предоставляет все базовые примитивы для работы с WinAPI.

JSON DSL — JSL

Если вы широко используете JSON в своем проекте, то вам будет интересен DSL — JSL. JSL позволяет описывать модели, почти в какой-нибудь ORM, создавать объекты по этим моделям и как-то с ними работать. Интересный проект.

Tkinter

Родным модулем для построения GUI интерфейсов для Python программ является Tkinter. Данная библиотека позволяет построить несложные интерфейсы. Tkinter есть на всех платформах где есть Python. В Python ветки 2.x.x при импорте модуля Tkinter, он пишется в большой буквы (иначе возникает ошибка). При импорте tkinter в версиях 3.x.x Питона имя модуля пишется с маленькой буквы.

Необходимо собрать проект со всеми библиотеками в одну папку, чтобы можно было его передавать на другие ПК.

Можно как-то исправить? И возможно ли как-то добавить все, что было установлено из PyGI 3.24.1 AIO в библиотеки venv, или нужно всегда (на других ПК) устанавливать PyGI 3.24.1 AIO?

Добавлено через 4 часа 59 минут
Решено. ехе установочник просто распаковывает ряд библиотек в venv (нужно только указать путь к venv, автоматически он не определится).
Что касается cairo, то просто pip install pycairo

05.02.2020, 13:38

В какую папку сохранить файл чтобы его можно было открыть?
У меня есть файл docx формата.По клику на кнопку он должен открываться,это сделано таким методом .

Как добавить Android-проект в Eclipse с Android SDK, чтобы после его можно было запустить на виртуальной машине?
Вот у меня с интернета скачан готовый андрой-проект, но я не знаю как его добавить в остальные.

Модифицировать программу так, чтобы можно было передавать функцию в виде делегата
Модифицировать программу нахождения минимума функции так, чтобы можно было передавать функцию в.

05.02.2020, 14:40 2 05.02.2020, 18:26 [ТС] 3

Garry Galler, если я правильно вас понял, то у меня так и есть: программа, в папке с программой venv, в venv либы + питон.

Сделал запуск приложения через bat файл. Но при запуске висит консоль, можно как скрыть? Пробовал делать расширение pyw, все равно висит.

05.02.2020, 19:04 4
05.02.2020, 19:04
05.02.2020, 19:18 5
06.02.2020, 10:47 [ТС] 6

d:\projects\designer\venv\Scripts\pythonw.exe ../../designer.pyw
Что-то в этом роде, точно не помню (все на работе).

Garry Galler, спасибо, завтра проверю

Ой, какое я странное название темы сделал, это все копипаст.

Добавлено через 11 часов 13 минут

06.02.2020, 10:52 7
06.02.2020, 11:08 8

Решение

Не совсем. Хотя очень похоже.
Просто есть Portable(или точнее — встраиваемые) версии Python (python-3.x.x-embed-win32\win64), которые можно использовать без установки инсталлятором. Они более компактны так как стандартные библиотеки упакованы в zip.
И в случае когда вам необходимо отдать заказчику продукт готовый к запуску без лишних телодвижений, то можно поступать следующим образом:
1) Распаковываем только что загруженную Portable\Embedded версию Python
2) Устанавливаем в него pip через скрипт get-pip.py
3) Удаляем файл python3x._pth
4) Создаем для своего проекта setup.py + необходимый req.txt c зависимостями (зависимости можно заранее скачать в виде whl)
5) Устанавливаем свой проект в site-packages данной версии Python через setup.py (в самом setup.py желательно прописать entry_points) вместе с зависимостями
6) И в итоге получаем автономную версию проекта(в виде каталога, который можно скопировать куда хочешь). Проект можно будет запускать exe-шником из папки Scripts, который автоматически создается, если в сетапнике указаны entry_points — точки входа в ваше приложение. А на exe-шник можно и ярлык еще создать, чтобы запускать приложение с рабочего стола.

P.S. Я как-то мало использовал venv, но там ведь в виртуальное окружение не все копируется из глобальной установки Python?

06.02.2020, 11:24 9
06.02.2020, 11:33 10

Это я к тому спросил, что каталог venv не создает автономную версию Python, так как там не все. Поэтому копипаст самого каталога виртуального окружения ничего не даст.

Добавить комментарий