Как стать автором
Поиск
Написать публикацию
Обновить
538.72

Python *

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

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

Инструменты Python для анализа данных на примере данных стриминг-сервиса

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров4.9K

В данной статье рассмотрены некоторые методы и инструменты библиотек python для анализа данных. Используем три самые популярные библиотеки: Pandas, Numpy, Seaborn

Читать далее

Как спрогнозировать вес птицы с помощью XGBoost: от предобработки данных до оптимизации модели

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.2K

Привет, Хабр! Вот когда каждый грамм действительно имеет значение: если вам нужно спрогнозировать вес птицы перед продажей, чтобы экономить на кормах и оптимизировать производство. Меня зовут Михаил Чирков, я data scientist в R-Style Softlab и сегодня хочу поделиться с вами кейсом прогнозирования с помощью XGBoost, этот проект мы делали в рамках внедрения BI-системы для птицефабрики. 

Читать далее

Год с Dishka: какой он — модный DI-контейнер?

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров7K

Привет, Хабр, меня зовут Юрий, я уже год использую хайповый IoC‑контейнер dishka в python-проекте и хочу немного поделиться опытом эксплуатации.

Мой проект — движок для городской ночной поисковой игры «Схватка» («Энкаунтер» или «Дозоры»). Проект полностью open source.

Читать далее

Датасеты меняют всё (*в мобильной платформе SimpleUI)

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров1.1K

Речь пойдет о новом механизме хранения и манипулирования данными в SimpleUI, который так тесно связан с UI-механизмами платформы что по сути является частью UI/UX. Это многогранный артефакт – это и «визуальная форма данных» (списки, поля ввода, поиск) и резидентное в памяти хранение и примитивное локальное хранение. В целом можно сказать, что «вы наполняете датасет данными, а платформа делает все остальное». Причем в результате выигрыш во всем – в скорости разработки, в прозрачности решения и производительности на любых объемах данных. Кроме того, это удобная работа со ссылочными объектами, что делаем Симпл более удобным для работы с данными внешних систем, а датасеты в свою очередь становятся основным механизмом хранения данных внешних систем (даже для онлайн-решений).

Читать далее

Поиск ликвидных облигаций с использованием Python

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров14K

На Московской бирже торгуется более 2500 облигаций, но большая часть из них неликвидна - в стакане почти нет предложений и сделок совершается крайне мало. Это затрудняет покупку и продажу таких бумаг. При этом известные мне публичные сервисы не суммируют объемы торгов за период, поэтому сложно быстро найти облигации с высокой ликвидностью.

Пять лет назад написал Node.js-скрипт, затем адаптировал его для Google Таблиц, а теперь разрабатываю Python версию. При помощи сообщества на GitHub эта Python версия идёт к созданию полноценной библиотеки с расширенными возможностями: автоматический поиск ликвидных облигаций, расчет денежных потоков, сбор новостей по эмитентам и вычисление оптимального объема покупки. Все это направлено на помощь простым инвесторам, вроде нас с вами, чтобы оперативно находить выгодные инвестиционные инструменты и принимать решения на основе актуальной информации.

Проект полностью open source.

Автоматизация работы с облигациями

Бэктестинг торговых стратегий на Python с помощью Numba. Когда перевод расчетов на GPU действительно оправдан?

Уровень сложностиСложный
Время на прочтение26 мин
Количество просмотров6.6K

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

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

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

Как же использовать ту легкость и скорость разработки Python и при этом сохранить адекватное время вычислений на больших объемах данных? В этой статье мы увидим, насколько перенос вычислений на GPU может увеличить производительность вычислений.

Читать далее

Как мы обучили модель прогноза ранней просрочки: логистическая регрессия vs градиентный бустинг

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

Всем привет! На связи дата-сайентисты стрима разработки моделей для корпоративного сегмента ВТБ — Андрей Бояренков, Иван Кондраков и Денис Дурасов.

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

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

Под катом расскажем, как мы их разрабатывали и каких результатов удалось с ними добиться.

Читать далее

Топ парсеров и API-сервисов сбора данных: сравнение скорости, масштабируемости и обхода защит — парсеры на максималках

Уровень сложностиПростой
Время на прочтение23 мин
Количество просмотров15K

Автоматический сбор данных (парсинг, или web scraping) стал неотъемлемой практикой для разработчиков, аналитиков и автоматизаторов. С его помощью получают массовую информацию с сайтов – от цен конкурентов и отзывов до контента соцсетей​. Для этого разработано множество “парсеров” – библиотек, фреймворков и облачных сервисов, которые позволяют извлекать веб-данные программно. Одни решения требуются для быстрого парсинга статичных страниц, другие – для обхода сложной JavaScript-навигации, третьи – для получения данных через API. 

В этой статье я рассмотрю топ инструментов для парсинга – как открытых (Open Source) библиотек, так и коммерческих SaaS/API-сервисов – и сравню их по ключевым метрикам.

Читать далее

Три теоремы о сортировках

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров14K

Я знаю многих программистов и руководителей в IT компаниях, которые недолюбливают математиков и в частности считают их далёкими от жизни идиотами из-за их утверждений в духе "нельзя отсортировать последовательность быстрее, чем за nlogn" -- ведь это очевидным образом неверно, есть же сортировка подсчетом и radix sort. Нюанс в том, что описанное выше -- это распространённая некорректная трактовка одной из ключевых теорем об алгоритмах сортировок, корректное утверждение выглядит так: "не существует алгоритма, который бы гарантированно находил перестановку n элементов, приводящую к возрастающему порядку, быстрее чем за nlogn используя только операции попарного сравнения". В этом утверждении больше слов, оно более сложно в плане когнитивного восприятия, ключевой момент обозначил жирным шрифтом, чувствуете разницу?

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

Если я ещё не убедил Вас прочитать статью, то вот моя последняя попытка: в статье объясню почему пузырёк -- это бесполезная фигня, но внезапно практически также работающая сортировка вставками -- это супер важная сортировка, являющаяся частью std::sort в MSVC, GCC и Clang. Расскажу, каким интересным свойством оптимальности обладает сортировка выбором, являющаяся в теории такой же неэффективной как пузырёк.

Читать далее

Процедурная генерация двухмерной полигональной карты

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

Привет Хабр ! Это моя первая статья на тему процедурной генерации. Здесь я рассмотрю конкретную задачу по генерации, её решение и опишу ключевые использованные принципы. Пишу эту статью для того, чтобы поделиться идеями и опытом, которых мне не хватало, когда я взялся за дело две недели назад. Я не буду делать полный разбор проекта, а лишь опишу и визуализирую принцип.

Читать далее

Сделать мобильного робота автономным? Это просто

Уровень сложностиПростой
Время на прочтение30 мин
Количество просмотров5K

Как отправить робота на автономное патрулирование и научить его «видеть»? Разбираем реальный кейс создания роботизированной системы мониторинга на базе отечественной платформы: выбор оборудования, интеграция ИИ и примеры кода. Делимся опытом, как научить робота собирать данные, обходить препятствия и почему отказались от модной робособаки.

Читать далее

Polars для обработки JSON и Parquet

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.4K

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

Сегодня рассмотрим тему обработки временных рядов с помощью Polars.

Начну с того, что в Pandas для агрегации временных рядов принято использовать метод resample(). Он удобен и привычен, но имеет свои ограничения по производительности и гибкости. Polars, в свою очередь, имеет метод groupby_dynamic(), который позволяет группировать данные по динамическим временным интервалам.

Читать далее

Cohere Command — революция, которую мы пропустили

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров14K

🔪 Карусель триальных токенов под ребро облачному LLM провайдеру

Облачный LLM провайдер Cohere предоставляет бесплатно 20 запросов в минуту без проверки кредитной карты. Я просто не смог отказаться от задумки сделать веселую карусель.

Читать далее

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

Делаем раскраску из ваших фото

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3K

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

Создать раскраску

Нейросети для семантической сегментации: U-Net, LinkNet, PSPNet

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров2K

Всем привет! Недавно я закончил один из этапов собственного проекта, в котором я провел сравнительный анализ 3 одних из самых известных нейросетей для семантической сегментации: U-Net, LinkNet, PSPNet. Теперь я хочу поделиться со всеми, чтобы в случае, если кто-то захочет сделать что-то подобное или ему просто понадобится, то он не искал весь интернет, как я, а легко и просто все нашел. В конце главы каждый нейросети я оставил ссылки на оригинальные статьи для желающих самостоятельно все изучить (на английском). Ссылка на мой GitHub с полноценной версией всех нейросетей и main файла в конце статьи.

Я расскажу кратко о подготовке входных данных перед тем, как подавать их в нейросеть, объясню самые важные детали каждой модели по отдельности, а также покажу результаты сравнения. Использовал я библиотеку Tensorflow, а обучение проводил в среде Google Colab.

Читать далее

Руководство по слабым ссылкам в Python с применением модуля weakref

Время на прочтение7 мин
Количество просмотров3.8K
Вполне вероятно, что вы никогда не сталкивались с модулем weakref языка Python и, возможно, даже не слышали о нём. Притом, что ваш код может быть написан и почти без применения слабых ссылок, этот модуль фундаментально важен для внутреннего устройства многих библиотек, фреймворков и самого языка Python. Так что в этой статье мы исследуем, что он собой представляет, чем может быть полезен, и каким образом этот модуль вам было бы удобно встраивать в ваш собственный код.

Основы


Чтобы понять модуль weakref и слабые ссылки, давайте сначала немного подробнее выясним, как в Python происходит сборка мусора.

В качестве механизма, регулирующего сборку мусора, Python использует подсчёт ссылок. Проще говоря, Python ведёт счёт ссылок для каждого создаваемого нами объекта, и счёт ссылок увеличивается на единицу всякий раз, когда на объект ставится очередная ссылка в коде. Когда ссылка с объекта снимается (например, переменная устанавливается в None). Если в какой-то момент количество ссылок падает до нуля, это означает, что вся память, выделенная под объект, у него изымается, и в таком случае объект попадает под сборку мусора.
Читать дальше →

365 дней спустя, или жизнь еще одного мониторинга

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.4K

Помню в детстве, перед началом летних каникул, казалось, что лето никогда не кончится - 3 месяца где-то рядом с бесконечностью. А сейчас... Оказывается мы уже больше года разрабатываем RMON, первый коммит в Github был 15 марта 2024 года. Вжух и один год жизни пролетел. Ладно, хватит разговаривать на скуфском - это было маленькое вступление для подведения небольшого итога года работы. Вперед!

Читать далее

Kак обойти капчу Сloudflare Turnsile — или обход Cloudflare разной степени сложности

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров6.3K

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

Читать далее

Как обсчитать когортный анализ в 9 шагов

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.6K

В статье описан алгоритм обсчета когортного анализа по датасету транзакций платежей пользователей с реализацией на Python.

Читать далее

Как мы сделали рекомендации, отказались от подрядчика и заработали денег

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2K

Привет, Хабр! Меня зовут Данила Федюкин и я тимлид в X5 Digital. Руковожу командой, которая занимается рекомендациями и метчингом.

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

Читать далее

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