IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте нас в Twitter

     09.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Колонка автора

Практические задачи: Задача #002 - собрать данные о погоде в одном месте

Продолжаем предлагать различные задачи для практики. Кто заинтересуется решением этих задач, просим помогать друг-другу. Но при этом в течении недели не кидать ссылок на полностью готовое решение. А также, чтобы читать код было удобно - публикуйте его на https://gist.github.com/ или какой-то подобный сервис.

Описание задачи:

     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Нейросеть на Python, часть 2: градиентный спуск

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

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

     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Интересные проекты, инструменты, библиотеки

edutest - библиотека для проверки кода студентов

Самописная система для проверки работы кода. Библиотека подает на вход функции определенное значение, а результат сравниваем с эталонным. 

     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Колонка автора

Таинство стандартной библиотеки: shelve - база данных для объектов

Модуль shelve из стандартной библиотекой можно описать одной фразой - "pickle + anydbm".

shelve позволяет сериализовать объект (прям как pickle), а потом сохранить его в виде похожем на БД (интерфейс anydbm).

     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Колонка автора
     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Колонка автора

Синтаксис Python: strip, rstrip, lstrip

Не редко возникает задача убрать лишние пробелы с начала/конца строки. Например

a = 'Доброе утро, Иван'
message, name = a.split(',') 
print(name)
> ' Иван' # (лишний пробел сначала строки)

     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Калибровка Kinect v2 с помощью OpenCV на Python

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

До этого я никогда не имел дела ни с компьютерным зрением, ни с OpenCV, ни с Kinect. Исчерпывающую инструкцию, как со всем этим хозяйством работать, мне найти тоже не удалось, так что в итоге пришлось порядком повозиться. И я решил, что будет не лишним систематизировать полученный опыт в этой статье. Быть может, она окажется небесполезной для какого-нибудь страждущего, а еще нам нужна популярная статья для галочки в отчетности.

     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Интересные проекты, инструменты, библиотеки

vycro - обертка над VBA для Microsoft Excel.

from vycro import MacroWrapper

mw = MacroWrapper()
wb_kwargs = {"ReadOnly":"True"}
m_args = ["arg1", "True", "111"]
with mw.open_workbook("/full/path/with.extension", **wb_kwargs):
    mw.run_macro("macro_name", *m_args)  # See declaration for function args

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Django: Как быстро получить ненужные дубликаты в простом QuerySet

Только что обнаружил интересный баг (баг с точки зрения человеческой логики, но не машины), и решил им поделиться с сообществом. Программирую на django уже довольно долго, но с таким поведением столкнулся впервые, так что, думаю, кому-нибудь да пригодится. Что ж, к делу!

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Разбираемся с бинарными данными на Python

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

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Интересные проекты, инструменты, библиотеки

nzbhydra - мета-поиск по NZB индексаторов

NZB - это XML формат для пересылки постов из Usenet'а

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Интересные проекты, инструменты, библиотеки

braindump - исходники органайзера заметок - https://braindump.pw/

Проект https://braindump.pw/ - это органайзер заметок

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Используем JSON Schema для валидации JSON данных

Статья описывает использование JSON Schema для валидации JSON данных на Python

Аналогичный подход можно применять для валидации XML данных.

     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Релизы

cffi - 1.3.1

Интерфейс для вызова C-кода. Изменения описаны по ссылке https://allmychanges.com/p/python/cffi/#1.3.1. Скачать можно по ссылке: http://pypi.python.org/pypi/cffi/

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Релизы

virtualenv - 0.8

Инструмент создания виртуального рабочего окружения. Изменения описаны по ссылке https://allmychanges.com/p/python/virtualenv/#0.8. Скачать можно по ссылке: http://pypi.python.org/pypi/virtualenv/

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Релизы

kombu - 3.0.27

Фреймворк для работы с AMQP. Изменения описаны по ссылке https://allmychanges.com/p/python/kombu/#3.0.27. Скачать можно по ссылке: http://pypi.python.org/pypi/kombu/