Обновить
512K+

Python *

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

598,31
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

О чем говорит YouTube

Время на прочтение7 мин
Охват и читатели12K
image

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

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

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

Поиск по документам представляется достаточно просто. Но что делать с поиском по мультимедиа контенту? Для полноценного сервиса пользователя надо обязать заполнить описание, дать название видеоролику или картинке, не помешает несколько тегов. К сожалению, далеко не все хотят тратить время на подобные улучшения контента. Обычно пользователь загружает ссылку на youtube, сообщает что это новое видео и нажимает сохранить. Что же делать сервису с таким “серым” контентом. Первая идея — спросить у YouTube? Но YouTube тоже наполняют пользователи (часто это один и тот же пользователь). Часто видеоматериал может быть и не с Youtube сервиса.
Так мне пришла идея научить наш сервис “слушать” видеоролик и самостоятельно “понимать”, о чем он.
Читать дальше →

Введение в аннотации типов Python

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

Введение



Автор иллюстрации — Magdalena Tomczyk


Вторая часть


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


Сохраняя идею динамической утиной типизации в современных версиях Python (3.6+) поддерживает аннотации типов переменных, полей класса, аргументов и возвращаемых значений функций:



Аннотации типов просто считываются интерпретатором Python и никак более не обрабатываются, но доступны для использования из стороннего кода и в первую очередь рассчитаны для использования статическими анализаторами.


Меня зовут Тихонов Андрей и я занимаюсь backend-разработкой в Lamoda.


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

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

Multi-page SPA на Питоне

Время на прочтение15 мин
Охват и читатели12K
Мост между Python и React

Сова – это нано-фреймворк, который можно встроить в другие фреймворки.
Картинка с sova.online, на котором запущено 3 http сервера:
http://sova.online/ — просто Falcon
http://sova.online:8000/ — просто Django
http://sova.online:8001/ — просто Python (логин: 1, пароль: 1)
Там же исходные коды и инструкция по установке. Там же нет рекламы.


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

Знакомство с тестированием в Python. Ч.1

Время на прочтение14 мин
Охват и читатели122K
Всем доброго!

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

Это руководство для тех, кто уже написал классное приложение на Python, но еще не писал для
них тесты.

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

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


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

Вопросы не мальчика, а джуна. 22 вопроса работодателю на собеседовании на позицию «Middle Python-разработчик»

Время на прочтение10 мин
Охват и читатели74K
image

Введение


За 2 года мне посчастливилось посетить более сорока собеседований в качестве кандидата на позицию «Middle Python-разработчик». На последних пятнадцати собеседованиях я понял необходимость задавать вопросы работодателю, чтобы в дальнейшем не столкнуться с неожиданностями по работе. Помимо базовых вопросов, которые обычно задают кандидаты работодателю я решил сформировать свои вопросы. Когда я задавал эти вопросы на собеседованиях, я получал самые различные реакции со стороны собеседующих. Кто-то говорил, что я дотошный, кто-то считал эти вопросы слишком банальными, а кто-то даже начинал нервничать(краснеть) и немедленно прерывать собеседование с нелепой отговоркой о том, что у него совещание. В этой статье я хотел бы рассказать об общих идеях посещения таких мероприятий а также привести мои 22 вопроса, которые я задаю на собеседовании работодателю.
Читать дальше →

Google News и Лев Толстой: визуализация векторных представлений слов с помощью t-SNE

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


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

Статья посвящена визуализации при помощи t-SNE рассчитанных Word2Vec многомерных векторных представлений слов. Визуализация позволит полнее понять принцип работы Word2Vec и то, как следует интерпретировать отношения между векторами слов перед дальнейшем использованием в нейросетях и других алгоритмах машинного обучения. В статье акцентируется внимание именно на визуализации, дальнейшее исследование и анализ данных не рассматриваются. В качестве источника данных мы задействуем статьи из Google News и классические произведения Л.Н. Толстого. Код будем писать на Python в Jupyter Notebook.
Читать дальше →

Немного внутренностей словарей в CPython (и PyPy)

Время на прочтение9 мин
Охват и читатели81K
Внутреннее устройство словарей в Python не ограничивается одними лишь бакетами и закрытым хешированием. Это удивительный мир разделяемых ключей, кеширования хешей, DKIX_DUMMY и быстрого сравнения, которое можно сделать ещё быстрее (ценой бага с примерной вероятностью в 2^-64).

Если вы не знаете количество элементов в только что созданном словаре, сколько памяти расходуется на каждый элемент, почему теперь (CPython 3.6 и далее) словарь реализован двумя массивами и как это связано с сохранением порядка вставки, или просто не смотрели презентацию Raymond Hettinger «Modern Python Dictionaries A confluence of a dozen great ideas». Тогда добро пожаловать.


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

Распознаём тексты на Android Things с ABBYY RTR SDK и django

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

Привет! Меня зовут Азат Калмыков, я студент второго курса ОП “Прикладная математика и информатика” Факультета компьютерных наук НИУ ВШЭ и стажёр в отделе мобильной разработки компании ABBYY. В этом материале я расскажу про свой небольшой проект, выполненный в рамках летней стажировки.



Представьте себе небольшой конвейер. По нему едут товары или какие-то детали, на которых важно распознавать текст (возможно, это некий уникальный идентификатор, а может, и что-то более интересное). Хорошим примером будут посылки. Работу конвейера дистанционно контролирует оператор, который отслеживает неполадки и в случае чего решает проблемы. Что может ему в этом помочь? Девайс на платформе Android Things может быть неплохим решением: он мобильный, легко настраивается и может работать через Wi-Fi. Мы решили попробовать использовать технологии ABBYY и узнать, насколько они подходят для таких ситуаций — распознавания текста в потоке на “нестандартных устройствах” из категории Internet of Things. Мы сознательно будем упрощать многие вещи, так как просто строим концепт. Если стало интересно, добро пожаловать под кат.

Кратчайшее введение в создание компилятора

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

Здесь я попытался показать на практике, что собой представляют некоторые важные концепции из области создания компиляторов. Есть вероятность, что подобные 15-минутные завершенные истории могут оказаться неплохим способом погружения в сложные темы. Только хорошо бы не пассивно читать то, что представлено ниже, а еще и проверять код в работе.


Если первый опыт окажется успешным, то в будущем вас могут ожидать и другие 15-минутные "зарисовки" по тематике компиляторов.

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

Топ книг по фреймворку Django

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


Веб-фреймворк Django подробно документирован на официальном сайте: там и теория, и справочная информация, и руководства для новичков. Однако, несмотря на качество, далеко не всем новичкам эта документация приходится по душе. Что ж, у вас есть два пути. Первый — записаться на обучающие курсы. Второй — в очередной раз заглянуть на полки интернет-магазинов. Этим мы сегодня с командой GeekBrains и займёмся.
Читать дальше →

Очень простой чат-бот для Telegram для самых маленьких

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


Есть 100500 способов и инструментов создать простого serverless чат-бота для телеграм. А наш все-равно будет проще, хотя бы по числу кликов в интерфейсе. Сам бот будет написан на Python, а выполнятся будет на serverless движке Swifty.
Читать дальше →

Подборка @pythonetc, ноябрь 2018

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

Это шестая подборка советов про Python и программирование из моего авторского канала @pythonetc.

Предыдущие подборки:


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

Реализация алгоритма Левенберга-Марквардта для оптимизации нейронных сетей на TensorFlow

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

Это tutorial по библиотеке TensorFlow. Рассмотрим её немного глубже, чем в статьях про распознавание рукописных цифр. Это tutorial по методам оптимизации. Совсем без математики здесь не обойтись. Ничего страшного, если вы её совершенно забыли. Вспомним. Не будет никаких формальных доказательств и сложных выводов, только необходимый минимум для интуитивного понимания. Для начала небольшая предыстория о том, чем этот алгоритм может быть полезен при оптимизации нейронной сети.




Полгода назад друг попросил показать, как на Python сделать нейросеть. Его компания выпускает приборы для геофизических измерений. Несколько различных зондов в процессе бурения измеряют набор сигналов, связаных с параметрами окружающей скважину среды. В некоторых сложных случаях точно вычислить параметры среды по сигналам долго даже на мощном компьютере, а необходимо интерпретировать результаты измерений в полевых условиях. Возникла идея посчитать на кластере несколько сот тысяч случаев, и на них натренировать нейронную сеть. Так как нейросеть работает очень быстро, её можно использовать для определения параметров, согласующихся с измеренными сигналами, прямо в процессе бурения. Детали есть в статье:


Kushnir, D., Velker, N., Bondarenko, A., Dyatlov, G., & Dashevsky, Y. (2018, October 29). Real-Time Simulation of Deep Azimuthal Resistivity Tool in 2D Fault Model Using Neural Networks (Russian). Society of Petroleum Engineers. doi:10.2118/192573-RU


Одним вечером я показал, как keras реализовать простую нейронную сеть, и друг на работе запустил обучение на насчитанных данных. Через пару дней обсудили результат. С моей точки зрения он выглядел перспективно, но друг сказал, что нужны вычисления с точностью прибора. И если средняя квадратичная ошибка (mean squared error) получилась в районе 1, то нужна была 1е-3. На 3 порядка меньше. В тысячу раз.

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

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

Еще одна реализация Обработки Данных

Время на прочтение2 мин
Охват и читатели3.7K
Представьте себе инструмент, с помощью которого вы можете трансформировать любые данные в… любые данные.

Самый доступный пример — Изображения. Что если я хочу получить картинку определенного размера и поставить где-нибудь водяную марку (тоже определенного размера).

И вот один из примеров как это может выглядеть:

image

P.S.: Это обзорная статья, если будет интересно, дальше опишу подходы детальнее.
Читать дальше →

Приглашаем на Waves Blockchain Hackathon

Время на прочтение1 мин
Охват и читатели1.6K
Waves Platform — одна из крупнейших в мире блокчейн-платформ, она входит в первую двадцатку блокчейн-компаний мира. В декабре Waves проводит хакатон для разработчиков: приглашаем познакомиться с экосистемой продуктов, командой проекта и присоединиться к блокчейн-сообществу.


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

Три вида утечек памяти

Время на прочтение7 мин
Охват и читатели14K
Здравствуйте, коллеги.

Наши долгие поиски неустаревающих бестселлеров по оптимизации кода пока дают лишь первые результаты, но мы готовы вас порадовать, что буквально только что закончен перевод легендарной книги Бена Уотсона "Writing High Performance .NET Code". В магазинах — ориентировочно в апреле, следите за рекламой.

А сегодня предлагаем вам почитать сугубо практическую статью о наиболее насущных видах утечек оперативной памяти, которую написал Нельсон Ильхейдж (Nelson Elhage) из компании Stripe.
Читать дальше →

Тест беговела при помощи трехосевого акселерометра

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

Вопрос физического развития собственных детей всегда актуален. Младшему сыну исполнилось три года, захотелось помимо прогулок подыскать ему занятия со спортивным уклоном. Поскольку он проявляет интерес к различным видам транспорта, выбор естественным образом пал на беговел. А насмотревшись зажигательных видео, как дети постарше трюкачат на беговелах, я решил немного более подробно исследовать вопрос. Вооружившись IMU от Амперки на 10 степеней свободы, Raspberry Zero W с блоком питания и 40 строками кода на Питоне я пошел в беговелошколу. Что из этого вышло — смотрите под катом )

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

Сортировки слиянием

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

Сортировки слиянием работают по такому принципу:

  1. Ищутся (как вариант — формируются) упорядоченные подмассивы.
  2. Упорядоченные подмассивы соединяются в общий упорядоченный подмассив.
Траффик

GeekBrains начинает готовить Full-stack разработчиков на Python

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


Наш образовательный портал GeekBrains объявляет о запуске нового курса подготовки веб-разработчиков на Python (Django). Продвинутый курс с углубленным изучением фреймворка Django позволит вам претендовать на должность Full-stack разработчика — специалиста с большим набором компетенций, способного создать веб-приложение с нуля.

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

Краткое руководство по Dash — Python веб-фреймворк для создания дэшбордов. Installation + Dash Layout

Время на прочтение7 мин
Охват и читатели111K
image

Всем привет!

Сегодня предлагаю погрузиться в один из удобнейших веб-фреймворков в связке c Python под названием Dash. Появился он не так давно, пару лет назад благодаря разработчикам фреймворка plotly. Сам Dash является связкой Flask, React.Js, HTML и CSS.

Выступление Криса Пармера на PLOTCON 2016


Давайте сразу установим фреймворк. Обновленные версии уточняйте тут.

pip install dash==0.31.1  # The core dash backend
pip install dash-html-components==0.13.2  # HTML components
pip install dash-core-components==0.38.1  # Supercharged components
pip install dash-table==3.1.7  # Interactive DataTable component (new!)

Друзья, если вы действительно хотите разобраться в данном фреймворке, читайте публикации до конца, так как зачастую сначала следуют примеры, а уже после детальный обзор кода. Если вам все равно непонятно — советую читать документацию по Dash на английском языке в оригинале. Также в рунете есть несколько статей, которые объясняют концепции, которые я решил пропустить в данном туториале.