Все потоки
Поиск
Написать публикацию
Обновить
421.05

Python *

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

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

Фотогалерея на максималках

Время на прочтение20 мин
Количество просмотров11K

~1 год назад я начал разрабатывать свою фотогалерею (песочницу для теста всяких технологий). Данная статья – это описание её архитектуры, а также различные твики/лайфхаки/микрогайды которые я узнал за время разработки + немного про производительность.

Читать далее

Сколько на самом деле вакансий на Python в веб-разработке (на примере Москвы)

Время на прочтение3 мин
Количество просмотров19K

В Коммунарке начинается осень, значит пришло время пересмотреть Бегущего (теперь уже два), открыть бутылочку Амаретто и написать следующую статью про всеми любимый Python. В данном случае поговорим о том, сколько на самом деле у нас вакансий на Python для веб-разработчиков.

Читать далее

MPIRE — быстрая альтернатива multiprocessing

Время на прочтение16 мин
Количество просмотров5K

MPIRE комбинирует функции, подобные map из multiprocessing.Pool, с преимуществами копирования при записи общих объектов multiprocessing.Process. В пакете также есть простые в работе функции состояния рабочего процесса, информирования о нём и индикатора выполнения. Сокращённым переводом документации делимся к старту курса по Fullstack-разработке на Python.

Читать далее

Как мы “повернули реки вспять” на Emergency DataHack 2021, объединив гидрологию и AutoML

Время на прочтение17 мин
Количество просмотров2.9K

Хабр, привет! 

Под катом хотелось бы поговорить об опыте участия нашей команды из лаборатории моделирования природных систем Национального центра когнитивных разработок Университета ИТМО в хакатоне Emergency DataHack 2021. И победы в нём :)

Читать далее

Копируем файлы пачками в AWS S3

Время на прочтение4 мин
Количество просмотров5.5K

В одном из проектов встала следующая задача: пользователь загружает пачку файлов через клиента (CloudBerry Explorer, к примеру) в S3 бакет, мы копируем эти файлы в архив и шлем SNS уведомление о том, что все сделано. Перекладывать файлы в архив нужно начинать только тогда, когда пользователь загрузит все, что хотел. Пользователей мало и загружают батчи они довольно редко. Но файлов может быть много.

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

<batch_name>/done.trigger
<batch_name>/files/<file_key_1>
<batch_name>/files/<file_key_2>
...
<batch_name>/files/<file_key_n>

Как видим, для каждой пачки создается свой каталог <batch_name> с подкаталогом files, в который и заливаются уже пользовательские файлы с каталогами и именами, которые он хочет. Триггер-файл загружается в <batch_name> и по ключу этого  файла можно понять какие конкретно файлы нужно отправить в архив. Но здесь есть один нюанс, мы хотим при копировании в архив вырезать каталог files. Т.е. файл <batch_name>/files/<file_key_1> скопировать в <batch_name>/<file_key_1>.

К счастью, S3 позволяет отслеживать загрузку файлов с определенным суффиксом и отправлять уведомления при наструплении этого события. В качестве получаетеля этих уведомлений можно указать аж 3 сервиса: SNS, SQS и Lambda-функцию. Но тут не без нюансов. Так, первые 2 типа поддерживают только стандартные очереди и SNS, а FIFO не поддерживают, увы.

Читать далее

PyFilesystem — мощная альтернатива pathlib

Время на прочтение8 мин
Количество просмотров9K

Написанная с помощью PyFilesystem функция поиска дубликатов файлов будет работать без изменений с жёстким диском, zip-файом, FTP-сервером, Amazon S3 и т. д., этот API абстрагирует от физического расположения файла. В нём меньше способов выстрелить себе в ногу, чем у модулей os и io. Руководством из документации делимся к старту курса по Fullstack-разработке на Python.

Читать далее

Распознавание и анализ речи с помощью библиотеки SPEECH RECOGNITION, PYAUDIO и LIBROSA

Время на прочтение4 мин
Количество просмотров49K

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

Если простыми словами скрытую марковскую модель можно объяснить на примере.

Читать далее

Работа с pdf-файлами с помощью библиотеки fitz

Время на прочтение4 мин
Количество просмотров28K

Возникла идея создать небольшую утилиту на Python, которая будет парсить PDF и сверять со списком швов, взятых из BIM модели. Изначально я обратился к библиотеке pdfminer, вернее к ее форку pdfminer.six. Но скорость работы меня совершенно не устраивала. Вот, например, загрузка файла в 10 страниц и парой картинок.

Читать далее

Нейродайджест: главное из области машинного обучения за август 2021

Время на прочтение4 мин
Количество просмотров4.7K

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

Перейти к обзору

Возможное будущее ИИ, Python как модель мышления или незаслуженно забытый Акинатор

Время на прочтение6 мин
Количество просмотров6.2K

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

Однако что же с исследовательской частью проблемы? Где и как люди отвечают на вопрос "Как улучшить сам ИИ, чтобы было легче выполнять задачи?" или "Есть ли что-то, что можно добавить в основу ИИ, кроме структуры нейронов и принципов их взаимодействия?"

Читать далее

Python и Ruby под нагрузкой: высокое искусство некромантии

Время на прочтение11 мин
Количество просмотров18K

Уже больше 20 лет я пишу код на разных языках программирования. Так как многие из этих языков считаются мертвыми, то сегодня я буду говорить о высоком искусстве некромантии — о том, как якобы мертвые языки используются в больших и иногда высоконагруженных проектах. Обрабатывая тысячи веб-запросов в секунду и не порождая необходимости писать свой компилятор PHP или переходить на Go или Rust.

Я расскажу про специфику Ruby и Python при высоких нагрузках, про их мейнстрим, который вы можете встретить в выживших проектах. Я не буду и не хочу говорить про спортивное программирование, где делают миллион запросов в секунду на одной ноде, выжигая из Python или Ruby всё и оставляя голый С. Python и Ruby действительно медленные, у них есть GIL, но при правильном использовании это не проблема, а статья расходов — и я расскажу, что мы можем получить за эти деньги.

Если вы предпочитаете слушать или смотреть (у меня там забавные крылья!) — видео моего выступления на конференции HighLoad++ Весна 2021.

Читать далее

Выполняем глубокое обучение быстро при помощи Fast AI

Время на прочтение5 мин
Количество просмотров12K

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

И всё же, существует инструмент, позволяющий легко совершить «быстрый старт» и опробовать нейронные сети в деле самостоятельно – это fast ai. Вообще, fast ai – это прежде всего группа исследователей, занимающихся вопросами искусственного интеллекта и глубокого обучения в частности, которая выпустила одноимённую библиотеку в свободное пользование в 2018 году. Если говорить простыми словами – fast ai представляет собой надстройку над упомянутым выше фреймворком pytorch и упрощает работу с ним, делает это быстрее. Отсюда и слово «быстро» в названии статьи.

Пожалуй, перейдём к практике и покажем, насколько просто работать с fast ai на простом примере задачи классификации изображений – постараемся обучить нейронную сеть различать две модели автомобильной марки Subaru: Impreza и Legacy. Как и обычно, в первую очередь выполняем установку библиотеки, выполнив в консоли команду:

Читать далее

Рисовалка для атомных орбиталей на Python

Время на прочтение10 мин
Количество просмотров11K

Начался новый учебный год, и преподавателям, студентам и школьникам, возможно, требуется (или просто хочется) посмотреть на то, как выглядят орбитальки, на которых сидят электроны в атомах: все эти завораживающие буковки s, p, d, f, и т.д. Да, картинок полно как в учебниках, так и в Интернете, но покрутить орбитальки на картинке не получится, а картинку из учебника/с левого сайта в презентацию/реферат без мороки с лицензией пихать (по-хорошему) не стоит. Поэтому в этом посте мы разберём одну из возможных реализаций рисовалки для этих самых орбиталек.

Посмотреть код, без регистрации и СМС.

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

Подгонялка соотношения белков, жиров и углеводов

Время на прочтение10 мин
Количество просмотров22K

В один прекрасный день я сидел и прикидывал в голове, сколько и чего надо съесть, чтобы получилось 30 гр. белка, 25 гр. жиров и 60 гр. углеводов. Из продуктов у меня были: гречка, яйца и авокадо.

Json (БЖУ указанно на 100 гр. сырого продукта):

{"Гречка": {"Белки": 11.7, "Жиры": 2.7, "Углеводы": 75}, "Яйца": {"Белки": 12.7, "Жиры": 11.5, "Углеводы": 0.7}, "Авокадо": {"Белки": 2, "Жиры": 15, "Углеводы": 9}}

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

Читать далее

Вот так выглядит нейросеть без фреймворков

Время на прочтение5 мин
Количество просмотров20K

Чтобы лучше понять глубокое обучение, Data Scientist из Hewleet Packard написал нейросеть только при помощи NumPy. Знать свои инструменты необходимо любому специалисту, поэтому наш курс по науке о данных включает раздел «Математика для Data Science». Под катом вы найдёте не только реализацию нейронной сети. Статья начинается со знакомства с книгой автора, которая, по его словам, будет полезна, если вы хотите создать достойное портфолио Machine Learning.

Читать далее

Уведомления при изменении цены акций в Тинькофф Инвестициях

Время на прочтение2 мин
Количество просмотров15K

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

Для инвестиций я выбрал Тинькофф, как один из наиболее популярных и функциональных сервисов. Очень быстро появилась потребность отслеживать цену акций, чтобы держать руку на пульсе. В Тинькофф Инвестициях есть инструмент для этого: уведомления по достижении некоего уровня цены. Но это уведомление срабатывает один раз и его приходится ставить заново, что неудобно. Подходящий для меня функционал я обнаружил в приложении Investing.com: уведомление придёт, если цена акции изменится на заданную в процентах величину. После уведомления счётчик сбрасывается и уведомление придёт снова, если это повторится. Я установил приложение и добавил для отслеживания свои акции - то что нужно!

Но со временем, когда я продал несколько акций и купил другие, стало понятно, что вносить те же изменения в приложении Investing.com мне лень + раздражало лишнее приложение на телефоне. Благо, у Tinkoff Investing есть API. Я решил реализовать тот же функционал с уведомлениями, но непосредственно для моих акций, а уведомления получать в Telegram. Так родился проект https://github.com/DiTsi/tinkoff_investing_notifier.

Читать далее

Простая нейронка без библиотек и многомерных массивов

Время на прочтение10 мин
Количество просмотров34K

Руководство? Гайд? В общем описание моего опыта создания простой, а главное понятной любому новичку нейросети :)

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

Читать далее

Kedro — ключ к модульной Data Science

Время на прочтение8 мин
Количество просмотров6.6K

Kedro — фреймворк модульного кода в Data Science. С его помощью вы можете создавать проекты по шаблону, настраивать конвейер в YAML, делить его на части, документировать проект — и это далеко не всё. Материалом о работе с Kedro делимся к старту курса по Data Science.

Читать далее

Парсим базу юриков ФНС (велосипедостроение с xml, csv, SQLite и Питоном)

Время на прочтение7 мин
Количество просмотров9.1K

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

Вводная

Что хотим сделать: взять данные по юридическим лицам (ЮЛ) РФ за 2019 год (идентификаторы ЮЛ: наименование и ИНН(ЮЛ), оборот, расход) и положить в SQLite.

Читать далее

Колл-центр на базе Telegram

Время на прочтение3 мин
Количество просмотров15K

image


В мире, где количество скачиваний Telegram перевалило за 1 млрд, есть простая задача — принимать звонки от клиентов. Будем разворачивать колл-центр?
Давайте представим себе сколько это головной боли:


  • Арендовать номера телефонов, помещение для операторов
  • Покупать, устанавливать телефоны (Хардфоны? Софтфоны ?)
  • Нанимать-обучать операторов, платить им зарплату (… продолжать? :-) )
  • Подумать как организовать удаленный доступ (vpn ?)

Почему бы просто не принимать звонки на Telegram сотрудников и назвать их операторами?
Просто, да не очень то уж и просто...

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

Вклад авторов