Выпуск 91

(14.09.2015 - 20.09.2015)

pythondigest.ru: Выпуск 91

Новости

      PEP 505 — None коалесцирующий оператор

Новое изменение синтаксиса, которое ждет нас в 3.6. PEP добавляет такое понятие как "null coalescing" или "null aware" из C#, Dart, Perl, Swift, и PHP.

      PEP 0506 -- Добавление модуля secrets в стандартную библиотеку

Модуль secrets содержит несколько генераторов псевдо-случайных чисел. В 3.6 этот модуль будет добавлен в стандартную библиотеку.

Статьи

      Анализируем 1.7 миллиард комментариев с Reddit с помощью Blaze и Impala

Захватывающая статья про анализ данных. Особенность этой статьи - объем данных. Далеко не на всякой машине такой объем влезит в память.

      Анализ логов с помощью Hadoop/Python

Привет, Хабр! В этом посте я хотел бы рассказать вам о том, как мы, Лаборатория новых профессий, вместе с компанией Data-centric Alliance смогли сконструировать несколько лабораторных работ, посвящённых обработке и анализу веб-логов. Эти лабораторные работы являются ключевыми в рамках первого кейса нашей образовательной программы «Специалист по большим данным» и выполняются на основе аудиторных данных DMP Facetz.DCA. Меня зовут Артем Пичугин, и я являюсь её координатором.

Представьте, что вы компания, продающая автомобили. Кому показать рекламу автомобиля? На каких сайтах? Так, чтобы недорого и эффективно? Казалось бы, ответ очевиден: пользователям, которые заходят на страницы покупки автомобилей на сайтах компаний, а также на досках объявлений типа Avito и т д.

      Python 3.5; async/await

Тихо и незаметно (с), вышел Python версии 3.5! И, безусловно, одно из самых интересных нововведений релиза является новый синтаксис определения сопрограмм с помощью ключевых слов async/await, далее в статье об этом. 

Поверхностный просмотр «PEP 0492 — Coroutines with async and await syntax» по началу оставил у меня вопрос «Зачем это надо». Сопрограммы удовлетворительно реализуются на расширенных генераторах и на первый взгляд может показаться, что все свелось к замене yield from на await, а декоратора, создающего сопрограмму на async. Сюда можно добавить и возникающее ощущение, что все это сделано исключительно для использования с модулем asyncio.

      Работа с данными среднего размера в Python. Pandas и Seaborn

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

Я попробовал много инструментов: Excel, Python+Matplotlib, R+ggplot, Python+ggplot, и остановился на связке Python+Pandas+Seaborn. Решил с их использованием уже много задач и хотел бы поделиться наблюдениями.

      Отслеживаем мяч на OpenCV

OpenCV - отличная библиотека для обработки изображений и видео. В этой статье будет показано как можно распознать мяч на видео.

      Добавляем простой GUI для Pandas скрипта

В статье вы найдете инструкцию как добавить для своего Pandas скипта GUI - с помощью gooey

      Разворачиваем Flask-приложение на Nginx, используя Gunicorn

Предположим, у вас есть Ubuntu, в котором нужно развернуть Nginx с Flask-приложением. Вам необходимо использовать WSGI сервер, например, Gunicorn. Gunicorn (Green Unicorn) — WSGI HTTP сервер на Python для UNIX систем. Представляю вольный перевод статьи Onur Güzel «How to Run Flask Applications with Nginx Using Gunicorn», где шаг за шагом показано процесс развертывания.

      Python список. Функции и методы над списками

Короткая статья про методы и функции свойственные спискам

      Python функции и замыкания

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

      Клеточные автоматы в Python Часть 1: Как вы думаете, это игра жизнь?

Первая статья из цикла "Клеточные автоматы". Введение - что это, зачем это и как это

      Анализ данных: анализируем поведение акул

Статья про анализ данных. В этой статье в качестве данных выступает активность акул за лето. С помощью привычных инструментов и k-d-деревьев будет сделан анализ.

      Анонс PyCharm Edu 2: простое лучше сложного

Новая версия PyCharm Educational Edition. В этой версии еще больше упрощен интерфейс и многие утилиты.

      Продвинутое использование регулярных выражений

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

      Регулярные выражения python

Регуля́рные выраже́ния (англ. regular expressions) — формальный язык поиска и осуществления манипуляций с подстроками в тексте. Так же их называю сокращенно regexes. Проще говоря это шаблон (pattern) для поиска определенной строки(подстроки). Разберем все на примерах.

Видео

      Commit, ускоривший Python 2.7.11 на 30% и новое в Python 3.5

В мини-докладе пойдёт речь о коммите, ускорившим Python 2.7.11 на 30%, а также о некоторых нововведениях в Python 3.5: PEP 448 — Дополнительное обобщение распаковки, PEP 484 — Новый стандарт для аннотирования типов, PEP 492 — Сопрограммы с использованием async и await.

      Разработчик разработчику: Азбука вежливости

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

      PuPPy meetup - 09/2015

Введение в Hug API Framework и как использовтаь Python для музыки

Колонка автора

      Функциональный Python: Python — это не Haskell

Идеи функционального программирования довольно популярны, в том числе и в среде программистов на Python, который не является функциональным языком.
В докладе речь пойдёт об особенностях функционального стиля в...[Продолжение]

      Внутренности Python: импорт в Питоне

Любая программа использует импорт модулей. Но, как показал беглый опрос, далеко не все программисты представляют, как работает импорт, что содержится в модуле и как этот импорт можно расширять для своих нужд.
...[Продолжение]

      Учебные материалы: книга "Программируем коллективный разум"

Книга "Программируем коллективный разум" - это введение в мир машинного обучения и статистики. В ней объясняется, как делать полезные с точки зрения маркетинга выводы о поведении и предпочтениях пользователей на основе...[Продолжение]

      Таинство стандартной библиотеки: модуль operator

Модуль operator содержит набор функций, соответствующих операторам Python.
Вот некоторые функции:
operator.add(a, b) # суммирует два значения
...[Продолжение]

      Синтаксис Python: работа с матрицами

Матрица - это, если утрировать, "табличка", N-мерный массив (чаще всего двумерный).
Матрицы возникают не редко. Например, игровое поле, карта мира - тоже можно представить матрицей, да то же решето Эратосфена - тоже...[Продолжение]

      Полезные библиотеки: gensim - библиотека для моделирования над текстами

Gensim - библиотека Python для моделирования. А точнее, тематическое моделирование документов и извлечения подобия с больших корпусов.
Целевая аудитория - люди занимающиеся обработкой естественного языка (НЛП) и IR...[Продолжение]

      Пишем web-проекты: Django Admin Actions

Интерфейс администратора Django достается разработчику "даром". Добавляешь немного строк кода и появляется UI где можно изменять объекты моделей. По умолчаниюю нам предоставляют GRUD возможности.
Но что если нам надо...[Продолжение]

      Таинство стандартной библиотеки: слабые ссылки - weakref

Python имеет автоматическое управление памятью: подсчёт ссылок для большинства объектов и сборка мусора для удаления циклов. Память освобождается сразу после того, как была удалена последняя ссылка на объект.
Этот...[Продолжение]

      Опыт разработчиков: assert как средство для валидации

Хочется сегодня осветить такой элемент синтаксиса как assert.
assert - это специальная конструкция, позволяющая проверять предположения о значениях произвольных данных в произвольном месте программы.
Какая же...[Продолжение]

Интересные проекты, инструменты, библиотеки

      Легковесный менеджер версий

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

      pycaffe-recurrent - IPython notebook для обучения многослойных LSTM и RNN сетей с Pycaffe

Репозиторий содержит код с которого можно начать погружение в многослойные LSTM и RNN сети

      VideoDigest - утилита для создания резюме видео

Videodigest это утилита командной строки для создания резюме видео

      Wooey - django-приложение, которое может автоматически создавать UI для скриптов

Wooey позвляет управлять внешними скриптами из Django интерфейса. Это приложение создает UI на основе аргументов необходимых для скрипта, после чего вы можете выполнять скрипт прямо из django-интерфейса.

Демонстрация - https://wooey.herokuapp.com/

      html5ever-python - биндинг html5ever

Высоко производительный браузерный HTML5 парсер. Парсер использует CFFI  

      Memory-Based Shallow Parser (MBSP) - анализатор текстов

MBSP анализатор текст. Проект позволяет совершать все типичные действия

      Watson - консольная утилита для мониторинга активности

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

      prettyconf - модуль управления настройками

Модуль нацеленно реализует подход описанный по ссылке http://12factor.net/ 

      lightfm - реализация LightFM, гибридный алгоритм рекомендаций

Реализация алгоритма описанного в статье arXiv