Обновить
792.78

Python *

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

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

Распространение сферического коня в вакууме по территории РФ

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


Привет от ODS. Мы откликнулись на идею tutu.ru поработать с их датасетом пассажиропотока РФ. И если в посте Milfgard огромная таблица выводов и научпоп, то мы хотим рассказать что под капотом.


Что, опять очередной пост про COVID-19? Да, но нет. Нам это было интересно именно с точки зрения математических методов и работы с интересным набором данных. Прежде, чем вы увидите под катом красивые картинки и графики, я обязан сказать несколько вещей:


  • любое моделирование — это очень сложный процесс, внутри которого невероятное количество ЕСЛИ и ПРЕДПОЛОЖИМ. Мы о них расскажем.
  • те, кто работал над этой статьей — не эпидемиологи или вирусологи. Мы просто группа любителей теории графов, практикующих методы моделирования сложных систем. Забавно, но именно в биоинформатике сейчас происходит наиболее существенный прогресс этой узкой области математики. Поэтому мы понимаем язык биологов, хоть и не умеем правильно обосновывать эпидемиологические модели и делать медицинские заключения.
  • наша симуляция всего лишь распространение сферического коня в вакууме по территории РФ. Не стоит относиться к этому серьезно, но стоит задуматься об общей картине. Она определенно интересная.
  • эта статья не существовала бы без датасета tutu.ru, за что им огромное спасибо.
  • мы хотим пригласить других заинтересованных исследователей в ODS.ai и под инициативой ML for Social Good (канал #ml4sg в ODS) вместе улучшать эту модель, чтобы получить опыт и возможность применять ее в будущем. Все интересные задачи, которые мы еще не решили, будут помечены в статье как TODO.

Под катом — результаты нашего марш-броска на датасет.

Общий финансовый анализ на Python (Часть 2)

Время на прочтение2 мин
Охват и читатели16K
Ну что продолжим?

Скользящее окно (Moving Windows)


В заголовке я привел дословный перевод. Если кто меня поправит, и другой термин более применим — то спасибо.

Смысл скользящего окна– с каждым новым значением функция пересчитывается за заданный период времени. Этих функций большое количество. Для примера: rolling.mean(), rolling.std(), которые чаще всего и используют при анализе движения акций. rolling.mean() — это обычная скользящая средняя, которая сглаживает краткосрочные колебания и позволяет визуализировать общую тенденцию.
Читать дальше →

Создание простого Discord бота с помощью библиотеки discord.py

Время на прочтение2 мин
Охват и читатели212K
Асинхронная библиотека discord.py содержит все что нужно для бота, с помощью нее даже можно работать с голосовыми каналами сервера. В этой статье я расскажу как создать простенького бота для вашего discord сервера.


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

Моделируем вселенную: небесная механика наглядно

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


Давайте представим, что нам нужно запустить футбольный мяч на орбиту Земли. Никакие ракеты не нужны! Хватит горы, высотой 100 километров и недюжинной силы. Но насколько сильно нужно пнуть мяч, чтобы он никогда больше не вернулся на Землю? Как отправить мяч в путешествие к звёздам, имея только грубую силу и знание небесной механики?

Сегодня в программе:

  • Бесконечные возможности одной формулы
  • Как взять энергию у Юпитера
  • Откуда у планет берутся кольца
  • Как математика помогла открыть Нептун

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

Парсинг фотографий с сайта cian.ru с помощью Selenium

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

Здравствуйте дорогие хабровчане, в этом небольшом примере я хочу показать как можно распарсить страницу, данные на которую подгружаются с помощью javascript виджетов. Более того, даже если страницу в этом примере просто сохранить, то всё равно не получится спарсить из неё все нужные фотографии из-за этих виджетов. В данном случае я использую для примера сайт cian.ru, у которого есть свой api, который я использовать не буду, вместо этого я буду использовать Selenium. Я не работаю в cian.ru, просто использую этот сайт для примера. Код в парсере простой и расчитан на начинающих.

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

Как мы кратно улучшили качество рекомендаций в оффлайн ритейле

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

Всем привет! Меня зовут Саша, я CTO & Co-Founder в LoyaltyLab. Два года назад я с друзьями, как и все бедные студенты, ходил вечером за пивом в ближайший магазин у дома. Нас очень расстраивало, что ритейлер, зная, что мы придём за пивом, не предлагает скидку на чипсы или сухарики, хотя это так логично! Мы не поняли, почему такая ситуация происходит и решили сделать свою компанию. Ну и как бонус выписывать себе скидки каждую пятницу на те самые чипсы.


image


И дошло всё до того, что с материалом по технической стороне продукта я выступаю на NVIDIA GTC. Мы рады делиться наработками с коммьюнити, поэтому я выкладываю свой доклад в виде статьи.

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

Clean Architecture глазами Python-разработчика

Время на прочтение10 мин
Охват и читатели40K
Привет! Меня зовут Евгений, я Python-разработчик. Последние полтора года наша команда стала активно применять принципы Clean Architecture, уходя от классической модели MVC. И сегодня я расскажу о том, как мы к этому пришли, что нам это дает, и почему прямой перенос подходов из других ЯП не всегда является хорошим решением.


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

Ранжирование округов Москвы по стоимости аренды с Python

Время на прочтение10 мин
Охват и читатели8.8K
Сейчас программирование все глубже и глубже проникает во все сферы жизни. А возможно это стало благодаря очень популярному сейчас python’у. Если еще лет 5 назад для анализа данных приходилось использовать целый пакет различных инструментов: C# для выгрузки (или ручки), Excel, MatLab, SQL, и постоянно “прыгать” туда сюда вычищая, сверяя и выверяя данные. То сейчас python, благодаря огромному количеству прекрасных библиотек и модулей, в первом приближении благополучно заменяет все эти инструменты, а в связке с SQL так вообще “горы свернуть можно”.

Итак, к чему я. Увлеклась я изучением такого популярного python’а. А лучший способ изучить что-либо, как вы знаете, — практика. А еще я интересуюсь недвижимостью. И попалась мне на глаза интересная задачка о недвижимости в Москве: проранжировать округа Москвы по усредненной стоимости аренды средней однушки? Батюшки, я подумала, да тут вам и геолокация, и выгрузка с сайта, и анализ данных — прекрасная практическая задача.

Воодушевившись замечательными статьями тут на Хабре (в конце статьи добавлю ссылки), приступим!
Читать дальше

COVID-19 Telegram-бот // Отвечаем на FAQ вопросы автоматически

Время на прочтение7 мин
Охват и читатели7.9K
В контексте всеобщего хайпа на Коронавирусе, я решил сделать хоть что-нибудь полезное (но не менее хайповое). В данной статье я расскажу о том, как за 2.5 часа (именно столько у меня ушло) создать и развернуть Telegram Бота с использованием Rule-Based NLP методов, отвечающего на FAQ-вопросы на примере с кейсом COVID-19.

В ходе работы, мы будем использовать старый добрый Python, Telegram API, пару стандартных NLP-библиотек, а также Docker.


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

Топ-3 функции Python, о которых вы не знали (Наверное)

Время на прочтение3 мин
Охват и читатели9.7K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Top 3 Python Functions You Don’t Know About (Probably)» автора Dario Radečić.

Будучи одним из самых популярных языков 21-го века, Python, безусловно, обладает множеством интересных функций, которые стоит изучить подробно. Три из них будут рассмотрены сегодня, каждая — теоретически, а потом и на практических примерах.

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

Компилятор Befunge на Python

Время на прочтение12 мин
Охват и читатели7.6K
В процессе подготовки к курсу «Основы компиляторов» для студентов 4-го курса я изучал различные эзотерические языки программирования. Вот хорошая статья на эту тему. В статье самым интересным мне показался язык Befunge (Крис Пресс, 1993 год), особо отмечу три его особенности:

  1. Поле программы представляет собой двумерный тор, т.е. физически это прямоугольная матрица команд-символов, замкнутая по верхней(нижней) границе и по левому(правому) столбцу. По полю передвигается указатель команд (каждая команда – это некий символ с координатами x,y), выполняет команду и двигается дальше. Движение может быть во все 4 стороны (по умолчанию направо с точки 0,0), а при выходе за пределы «поля» указатель появляется с противоположной стороны.
  2. В языке есть две команды (p, g), которые меняют само поле, т.е. программа «самопереписывается» в процессе выполнения. Код программы на старте может не быть равен коду на финише. Стартовала программе «123pgpg##@», а закончила работать программа «ABC@1@2@3.14» (не правильный пример).
  3. Крис Пресси отмечал, что хотел создать язык, максимально сложный для компиляции. Де-факто это так, создать именно компилятор, который делает из программы exe-файлы адски сложно, я нашел информацию, что на Си кто-то смог это сделать… Лучше всего создавать транслятор из языка в код на Python, который я все равно называю компилятором для простоты.

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

Деградация связной структуры

Время на прочтение5 мин
Охват и читатели2.8K
Кролики и удавы
Вирусы и питоны

Всё, что один человек написал, другой может переврать!

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

Перейдем к делу, у нас есть узлы(может это и люди) связанные между собой. Узлы деградируют/болеют и их можно лечить, изолировать в карантине, ну и они отключаются, увы иногда навсегда.
Читать дальше →

Celery throttling — настраивам rate limit для очередей

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

​ В этой статье я покажу как решить одну из проблем, возникающих при использовании распределенных очередей задач — регулирование пропускной способности очереди, или же, более простым языком, настройка ее rate limit'a. В качестве примера я возьму python и свою любимую связку Celery+RabbitMQ, хотя алгоритм, который я использую, никак не зависит от этих инструментов и может быть реализован на любом другом стэке.


Celery+RabbitMQ


So what's the problem?


​ Для начала пара слов о том, какую проблему я вообще пытаюсь решить. Дело в том, что 99.9% сервисов в интернете запрещают бесконтрольно закидывать их сотнями/тысячами запросов в секунду, угрожая дать в ответ какой-нибудь 403 или 500. Нет, ну правда, жалко им чтоле? Иногда таким сервисом может выступать даже своя собственная БД… Вобщем, доверять нынче нельзя никому, поэтому приходится себя как-то сдерживать.


​ Конечно, если вся работа ведется внутри 1го процесса, то никакой проблемы нет, но т.к мы работаем с Celery, то у нас может быть не только N процессов (далее воркеров), но и M машин, и задача все это дело синхронизировать уже не кажется столь тривиальной.

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

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

Пробуем запустить GAN сети в OpenVINO

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

Репозиторий моделей Open Model Zoo библиотеки OpenVINO содержит много самых разных глубоких нейронных сетей из области компьютерного зрения (и не только). Но нам пока не встретилось GAN моделей, которые генерировали бы новые данные из шума. В этой статье мы создадим такую модель в Keras и запустим ее в OpenVINO.


Intro image

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

Определяем COVID-19 на рентгеновских снимках с помощью Keras, TensorFlow и глубокого обучения

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

С помощью этого руководства мы с помощью Keras, TensorFlow и глубокого обучения научимся на собранном вручную датасете из рентгеновских снимков автоматически определять COVID-19.

Как и многие другие, я искренне беспокоюсь относительно COVID-19. Я заметил, что постоянно анализирую своё состояние и гадаю, подхвачу ли болезнь и когда это произойдёт. И чем больше я об этом беспокоюсь, тем больше это превращается в болезненную игру разума, в которой симптоматика сочетается с ипохондрией:

  • Я проснулся утром, чувствуя некоторую болезненность и слабость.
  • Когда я выполз из кровати, то обнаружил у себя насморк (хотя уже известно, что насморк не является симптомом COVID-19).
  • К тому времени, как я добрёл до ванной, чтобы взять бумажный платок, я уже кашлял.

Сначала я не обращал на это особого внимания — у меня аллергия на пыльцу, а из-за тёплой погоды на восточном побережье США весна в этом году выдалась ранняя. Скорее всего, это аллергические симптомы. Но в течение дня моё состояние не улучшалось. Я сижу и пишу это руководство с градусником во рту. Смотрю вниз и вижу 37,4 °С. Моя нормальная температура тела чуть ниже, чем у других, на уровне 36,3 °С. Всё, что выше 37,2 °С, для меня уже небольшой жар.

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

Мой способ знакомства учеников младших классов с Python

Время на прочтение5 мин
Охват и читатели21K
В наше время большинство детей знакомится с миром программирования через создание проектов на платформе scratch.mit.edu Создание проектов происходит путем соединения разноцветных блоков без ввода кода с клавиатуры (вводим только значения переменных).

Однако, дети взрослеют, им становится тесно в мире Scratch, и в этот момент им можно предложить несколько путей развития.

Некоторые, как мой сын Артём, вдоволь поработав в графическом редакторе Scratch выбирают кружок изобразительного искусства.

Другие ребята — фанаты 2D игр, продолжают делать более профессиональные игры на платформе Construct.

Ну а фанатам программирования можно посоветовать Python, ведь это один из самых простых языков для изучения. Но как же быть, ведь ученики начальных классов совершенно не знакомы с клавиатурой?
Читать дальше →

Реализуем преобразования кода на Python

Время на прочтение10 мин
Охват и читатели34K
Привет, Хабр.

Сегодня мы предлагаем вам перевод статьи, затрагивающей не самую обсуждаемую тему: компиляцию кода в Python, а именно: работу с абстрактным синтаксическим деревом (AST) и байт-кодом. Притом, что Python является интерпретируемым языком, такие возможности в нем чрезвычайно важны с точки зрения оптимизации. О них мы сегодня и поговорим.
Читать дальше →

Как Data-Engineer за данными следил

Время на прочтение5 мин
Охват и читатели4.1K
Привет, Хабр! Хочу рассказать вам, как мы писали и внедряли сервис для мониторинга качества данных. У нас есть множество источников данных: данные с финансовых рынков, торговая активность наших клиентов, котировки и многое другое. Все это генерирует миллиарды записей в день в наших процессах. Полнота и консистентность торговых данных — критический компонент бизнеса Exness.

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


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

Получить выписку из Росреестра через ФГИС ЕГРН и python. Часть 2

Время на прочтение6 мин
Охват и читатели8.7K
В этой статье попробуем получить выписки из ФГИС ЕГРН с помощью python (selenium) сразу по нескольким объектам недвижимости, решим капчу с помощью сервиса anticaptcha, используя его api. При встрече с капчей нейросети трогать не будем, так как они могут показаться сложнее в реализации, да и процент «успешных разгадываний» капч с их помощью пока ниже.

Ссылка на 1-ю часть статьи:Получить выписку из Росреестра через ФГИС ЕГРН и python. Часть 1



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

Ваша первая нейронная сеть на графическом процессоре (GPU). Руководство для начинающих

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

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

Для начала определим что такое нейронная сеть.

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

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

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

Оборудование


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