Обновить
256K+

Python *

Высокоуровневый язык программирования

367,25
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности
Формат публикации

Препроцессинг данных и анализ моделей

Время на прочтение8 мин
Охват и читатели33K
Всем привет. В прошлом посте я рассказывал про некоторые базовые методы классификации. Сегодня, в силу специфики последней домашки, пост будет не столько про сами методы, сколько про обработку данных и анализ полученных моделей.

Задача


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

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


Читать дальше →

Про отток разработчиков из свободных проектов, преподавание Python в качестве первого языка и другие темы

Время на прочтение2 мин
Охват и читатели33K
Долго думал над заголовком, в итоге в него попали пара интересных вопросов из докладов прошедшей недавно, уже восьмой по счету, конференции «Свободное программное обеспечение в высшей школе».

Мероприятие это традиционно проводится зимой в уютном здании Университета города Переславля-Залесского Ярославской области, в несколько как бы семейной обстановке, а потому совсем широкой общественности не известное. А меж тем, каждый год бывают весьма любопытные доклады, и еще более интересные докладчики. Четыре из них хотелось бы выделить в этом топике, хотя внимания заслуживают все. По традиции тематика докладов (особенно в первый день) выходит за рамки тематики конференции, и тем интереснее их слушать.

1) «СПО. Кризис среднего возраста?» (Хотел вынести в заголовок топика один из слайдов доклада — «Куда уехал цирк?», но воздержался)
В преддверии 30-летнего юбилея движения GNU, известный аналитик Антолий Якушин, человек широчайших познаний в области программного обеспечения, подводит некоторые итоги и, в частности, рассказывает: куда направлен отток разработчиков свободных проектов, так ли это страшно, почему в MIT сейчас так мало свободных проектов, почему Столлман не является социалистом и прочие животрепещущие вопросы



Читать дальше →

«Бар желаний» к 8 марта на Python и Pyramid

Время на прочтение12 мин
Охват и читатели24K
Как поздравить девушек на работе с прекрасным праздником весны? В этом году хотелось сделать что-то необычное, чем-то удивить их в дополнение к традиционным подаркам и цветам. Так появилось веб-приложение «Бар желаний», созданное за один день с помощью Python и Pyramid.



Может быть, после прочтения статьи кто-то решит повторно использовать «Бар желаний» для поздравлений. Возможно, кто-то откроет для себя Pyramid — веб-фреймворк, прекрасно подходящий для быстрого создания небольших веб-проектов. Наконец, можно просто забрать исходный код приложения с GitHub для использования в своих целях.

В статье показан процесс разработки небольшого веб-приложения, начиная с постановки задачи и проектирования и заканчивая развертыванием приложения на сервере. По ходу статьи приведены комментарии к реализации, которые объясняют на примерах некоторые принципы работы веб-приложений в общем и Pyramid в частности. Таким образом, статью можно рассматривать также как руководство по Pyramid для начинающих на примере реальной задачи.
Читать дальше →

Выкладка python-проектов с помощью pip и wheel

Время на прочтение4 мин
Охват и читатели9.8K
Привет, Хабрахабр!

В этом посте я буду говорить о выкладке Python-проектов: о том как положить на сервер код и все требуемые сторонние модули. Многие из нас сталкивались с проблемой развертки проекта на боевой машине, но на хабре об этом мало пишут; я хочу поделиться своим опытом.

image

Читать дальше →

Экспорт фотоальбомов из ВКонтакта

Время на прочтение4 мин
Охват и читатели86K

Преамбула


Дело было вечером, делать было нечего и тут мне в голову пришла мысль: «Как же мне выгрузить все фотографии из ВКонтакта на компьютер?» Недолго думая, я написал утилиту для этого и решил поделиться с общественностью, возможно я не один такой.

Поехали


В качестве инструмента для работы с API, путём кратких поисков, была выбрана библиотека vk_api. Для работы с сетью она использует Requests, поэтому и эта библиотека требуется для запуска.

Пощупать


GitHub Pages проекта
Исходный код с примерами

Простой классификатор на PyBrain и PyQt4 (Python3)

Время на прочтение12 мин
Охват и читатели34K
Изучая Python3, я портировал (как смог) библиотечку PyBrain. Об этом я уже писал здесь.
image
Теперь же я хочу немного «поиграть» с данной библиотечкой. Как я уже говорил в предыдущем посте, питон я только начал изучать, так что все написанное в этой статье не стоит воспринимать как Истину. Изучение — это путь, и он извилист.

Задачу поставим перед искусственной нейронной сетью (ИНС) весьма простую — классификацию, а именно: распознавание букв латинского алфавита.

Вроде бы классический пример, про него уже писали на хабре неоднократно: «Что такое искусственные нейронные сети?», «Нейронные сети и распознавание символов» и т.д.
Но моей целью стоит изучение питона на не самых простых примерах. Т.е. учимся сразу на сложном и незнакомом. Так мы найдем в два раза больше граблей, что позволит нам копнуть в глубины языка, разбираясь с «почему не работает?».

Под хабракатом вас ждёт: описание способа подготовки данных на PyQt4, использование модуля argparse, ну и конечно же PyBrain!
Читать дальше →

Распознавание рукописных символов с использованием Python и scikit

Время на прочтение5 мин
Охват и читатели32K
Привет. Наверняка многие интересуются методами машинного обучения и решения различных задач, которые обычными подходами не решаются. Недавно мне посчастливилось попасть на курс Data Mining, организованный в рамках программы GameChangers. Первым же домашним заданием было сделать сабмит на Kaggle — решить задачу Digit Recognizer.
Читать дальше →

Самый быстрый SAX-парсер для python

Время на прочтение2 мин
Охват и читатели21K
Внезапно захотелось пересчитать все xml-теги в 240 тысячах xml-файлов общим весом 180 GB. Питоном — и побыстрее.
Читать дальше →

DataEngine и Python2 или Как я писал свой виджет

Время на прочтение4 мин
Охват и читатели4.2K

Вместо предисловия


Посидев немного в awesome, я решил вернуться на более привычные, обвешанные множеством нужных и не очень плюшек, кеды (KDE4). Через некоторое время, я решил убрать страшненький самописный виджет карамбы (SuperKaramba) и заменить его более элегантным и простым виджетом плазмы. Требования к нему были простые: это должен быть простенький виджет на панели, который бы отображал в виде текста всю основную (вернее, востребованную мной) информацию. Порыскав по kde-look.org, я нашел один виджет, который устраивал меня в достаточной мере. Однако, мне нужны были некоторые дополнительные функции, которые не были реализованы в этом виджете. Также, автор не предусмотрел возможность легкой конфигурации виджета, и для его настройки приходилось лезть в исходный скрипт, написанный на JavaScript.
Через несколько итераций настройки уже имеющегося виджета, ввиду отсутствия у меня каких либо представлений о JS, я решил написать свой виджет. Из языков программирования был выбран Python2, в котором я более-менее смыслю. Сказано — сделано. За вечер я написал первую версию виджета, вполне работоспособную. Позже, при тестировании обнаружилось, что он имеет неприятную особенность подвисать во время обновления. Во-первых, это было связано с тем, что все поля обновлялись одновременно. А во-вторых, и это, пожалуй, самое главное — для парсинга файлов с данными (среди них /proc/stat и файл, в котором содержится информация о переданном/полученном трафике) нужна некоторая задержка. Если выставить на них по 0.2 секунды, то в итоге виджет подвисает почти на 0.5 секунд, что заметно даже невооруженным глазом.
Тогда мной была предпринята попытка переписать код, включив DataEngine, который я подсмотрел в исходном виджете. Ниже пойдет речь об использовании этого модуля в Python2.
Читать дальше →

История одной оптимизации

Время на прочтение7 мин
Охват и читатели6.2K
Речь пойдет о unity-launcher-editor — редакторе элементов и контекстного меню (quicklists) панели Unity для Ubuntu. Редактор написан с использованием связки python+gtk, с обязанностями справляется сносно. Раздражает время запуска: до появления главного окна проходит непозволительно много времени.

Можно пенять на Python, Unity или разработчиков, а можно попробовать разобраться в чем же дело, проект ведь с открытым кодом. Во время «исследования» делал пометки, которые и легли в основу этой заметки. Любопытных прошу под кат.

Читать дальше →

Наконец-то. Зарелизился Django 1.5

Время на прочтение1 мин
Охват и читатели16K

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

Как пишут разработчики, была проделана довольно большая работа по выпуску очередной версии. Полный список изменений и новшеств как обычно можно посмотреть в примечаниях к релизу, а вот краткий список основных:
Читать дальше →

Как мы создавали кластер из Raspberry Pi

Время на прочтение4 мин
Охват и читатели110K

12-14 февраля прошла известная конференция WSO2Con 2013. И её ведущим был Эбен Аптон (Eben Upton) — основатель и попечитель фонда Raspberry Pi Foundation.

Как все однажды началось...


Raspberry Pi будоражит умы гиков с тех самых пор, как была первый раз анонсирована. Мы были взволнованы услышать о том, что Эбен будет представлять конференцию и ещё больше удивлены, когда Sanjiva (прим. пер.: CEO WSO2, главный организатор конференции) предложил нам разместить бэкенд официального приложения WSO2Con на кластере из Raspberry Pi. Предложил что? Да, он всегда полон безумных идей. Первое совещание прошло 23 декабря 2012, за день перед уходом команды на рождественские каникулы. В то время мы даже не были уверены, возможно ли вообще запустить enterprise middleware на Raspberry Pi. Но исследование неизведанного — это обычное дело для WSO2, и достижение недостижимого — то, что мы делаем здесь на регулярной основе. Таким образом, группа отважных гиков бросила вызов созданию такой системы. Проект официально сдвинулся с мёртвой точки 2 января этого года.
Осторожно, трафик!

PyCon для студентов

Время на прочтение2 мин
Охват и читатели5.2K
Строго говоря, PyCon Russia — не совсем студенческое мероприятие (мы очень старались сделать программу интересной именно для опытных разработчиков). Но поскольку подобного рода гости нечасто бывают на Урале, да и мы в IT-People как-то традиционно переживаем за формирование интересной профессиональной среды, то вот два шага, на которые мы идём в этот раз:
Читать дальше →

Ближайшие события

Путешествие исключений между C++ и Python или «Туда и обратно»

Время на прочтение11 мин
Охват и читатели19K
В этой главе сказа про дружбу C++ и Python будет на удивление мало использования Boost.Python. Передача исключений туда и обратно является по сути слабым местом данной библиотеки. Будем обходиться родным API языка Python, а где это возможно использовать Boost.Python.
Тем не менее Boost.Python создаёт окружение, в котором исключения из C++ попадают в Python в виде стандартного RuntimeError, а обратно из Python генерируется исключение C++ типа error_already_set, что означает «тебе что-то прилетело, сходи сам почитай что там». И вот здесь нам как раз будет не лишним использовать C-API языка Python, чтобы вычитать необходимую информацию об исключении и преобразовать в соответствующий класс сообразно логике приложения.
К чему такие сложности? — Дело в том, что в Python, в отличие от C++, кроме текста исключения и его типа приходит ещё и traceback — стек до места возникновения исключения. Давайте немного расширим стандартный std::exception дополнительным параметром для этого stacktrace, а заодно напишем конвертер исключений туда и обратно из классов C++ в классы исключений Python.
Читать дальше →

Python в Европе под угрозой

Время на прочтение2 мин
Охват и читатели46K
Некоммерческая организация Python Software Foundation бьёт тревогу: объявилась некая британская фирма, которая пытается зарегистрировать торговую марку Python для программного обеспечения, сервисов и т.д. на территории всего Евросоюза.

Эта компания 13 лет назад зарегистрировала домен python.co.uk. Раньше она просто направляла трафик с этого домена на свои сайты veber.co.uk и pobox.co.uk, но теперь родительская компания приняла решение, что может использовать название Python в своём бизнесе.

Организация Python Software Foundation нуждается в свидетельских показаниях, что слово Python использовалось до того, как был зарегистрирован домен python.co.uk. Организация обращается ко всем компаниям в ЕС, которые используют программное обеспечение на Python, с просьбой прислать письмо, которое можно предъявить в суде.
Читать дальше →

Можно ли автоматически разгадать головоломку Mercator от Google?

Время на прочтение4 мин
Охват и читатели25K
Недавно была статья о крутой картографической головоломке от Google. После того, как я потратил около 20 минут на разгадывание, захотелось понять можно ли сделать это автоматически?

Подробности

Вышел новый PyCharm 2.7 с поддержкой Django 1.5, улучшенным рефакторингом и автодополнением

Время на прочтение2 мин
Охват и читатели20K
В свежей версии PyCharm 2.7 команда разработчиков постаралась учесть пожелания сообщества, внесла несколько полезных улучшений и добавила поддержку свежей версии Django.

Более предметно:

Внешний вид
В версии 2.7 PyCharm получил новую тему интерфейса в темных тонах (Darcula), знакомую по IntelliJ IDEA 12.



Если вы — счастливый обладатель новенького MacBook, то ваш глаз порадуют новые значки, разработанные специально для экранов Retina.
а внтури?

Конвертация типов в Boost.Python. Делаем преобразование между привычными типами C++ и Python

Время на прочтение16 мин
Охват и читатели22K
Данная статья не является продолжением повествования об обёртках C++ API. Никаких обёрток сегодня не будет. Хотя по логике это третья часть данного повествования.
Сегодня будет море крови, расчленение существующих типов и магическое превращение их в привычные аналоги в другом языке.
Речь не пойдёт о существующей конвертации между строками, нет, мы напишем свои конвертеры.
Мы превратим привычный datetime.datetime питона в boost::posix_time::ptime библиотеки Boost и обратно, да чёрт с ним, мы вообще всю библиотеку datetime превратим в бустовые типы! А чтобы не было скучно, принесём в жертву встроенный класс массива байт Python 3.x, для него как раз ещё нет конвертера в Boost.Python, а потом зверски используем конвертацию массива байт в новом конвертере питоновского uuid.UUID в boost::uuids::uuid. Да, конвертер можно использовать в конвертере!
Жаждешь крови, Колизей?!..
Читать дальше →

Библиотека Jevix для Python

Время на прочтение3 мин
Охват и читатели7.1K

Всем доброго времени суток!
Недавно я задал вопрос на habre, про аналог библиотеки jevix для python.
Мне подсказали решение, но этих решений мне было недостаточно, да и всем известно что Jevix самая популярная библиотека для работы с html.

Для тех кто впервые слышит по Jevix

Jevix — средство автоматического применения правил набора текстов, наделённое способностью унифицировать разметку HTML/XML документов, контролировать перечень допустимых тегов и аттрибутов, предотвращать возможные XSS-атаки в коде документов.

Автором этой библиотеки для php является, хабра житель ur001, ссылка на проект jevix.ru/project
Читать дальше →

Объединяя C++ и Python. Тонкости Boost.Python. Часть вторая

Время на прочтение10 мин
Охват и читатели28K
Данная статья является продолжением первой части.
Продолжаем мучить Boost.Python. В этот раз настала очередь класса, который нельзя ни создать, ни скопировать.
Обернём почти обычную сишную структуру с необычным конструктором.
И поработаем с возвращением ссылки на поле объекта C++, так чтобы сборщик мусора Python его не удалил ненароком. Ну и наоборот, сделаем альтернативный вариант, чтобы Python прибрал мусор после удаления того, что ему отдали на хранение.
Поехали…
Читать дальше →