Обновить
566.36

Python *

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

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

Как я реверс-инженерил китайский блютуз контроллер

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели11K

Создание цветомузыки посредством реверс инженеринга блютуз контроллера и анализа звукового потока через golang.

Читать далее

Python + pygame — небольшие оптимизации

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели7.4K

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

Читать

Разработка алгоритмов обработки данных в реальном времени на Python

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


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

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

PyTelegramBotAPI на примере проекта сбора обратной связи #1

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

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

Эта статья направлена именно на новичков, в ней я постараюсь объяснить тему ботов на примере сбора обратной связи.

Читать далее

Управление сетевыми устройствами: Orange Pi, OpenWRT и Python

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

Современный мир интернета вещей (IoT) и смарт-устройств требует гибкости и мощности при управлении сетевым оборудованием. Найти подходящее решение, сочетающее в себе одновременно простоту, надежность и доступность, может быть сложной задачей. Сегодня я хочу рассмотреть одну из таких комбинаций: одноплатный компьютер Orange Pi с операционкой OpenWRT + Python.

Orange Pi – мощная и компактная альтернатива другим одноплатным компьютерам. Он обладает большой вычислительной мощностью, расширяемыми возможностями и множеством интерфейсов. OpenWRT, в свою очередь, легкая и гибкая ОС, специально разработанная для маршрутизаторов и сетевых устройств. ОС предлагает широкие возможности настройки и расширения сетевых функций. Ну и Python – один из самых популярных языков программирования в мире, предоставляет простоту и эффективность для разработки скриптов и автоматизации задач.

Читать далее

Клонирование голоса из музыки, удаление движимого текста из видео и новые фишки во второй части обновления Wunjo AI

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

Привет, Хабр! Наконец, после множества бессонных ночей, я завершил работу над второй частью обновления open-source проекта Wunjo AI и воплотил своё видение приложения. В этом обновлении основное внимание уделено звуку: улучшено клонирование голоса, извлечение вокала или мелодии из песен и повышение качества речи. Но это не все, также появились новые функции для работы с видео и создания дипфейков. Давайте рассмотрим все по порядку: начнем с звука и перейдем к видео и дипфейкам. В конце статьи вы найдете ролик, в котором объясняется работа с видео в приложении и функционирование нейронных сетей для создания дипфейков и не только.

Если вам интересно, вы можете прочитать предыдущие статьи на Хабре о создании дипфейков в Wunjo AI и функциях работы с дипфейками и изменениями видео с помощью текста.

Давайте начнем с звука. Одной из основных задач во второй части обновления была работа над звуком. Изначально в Wunjo AI использовалась адаптированная версия Real Time Voice Cloning, но подход был полностью переработан, что привело к улучшенной версии клонирования голоса. Теперь я использую кодировщик, обученный на аудиоматериале через Real Time Voice Cloning, в сочетании с HuBERT Soft. Этот метод позволяет точнее копировать скорость и тембр речи на этапе синтеза звука и перед работой вокодера. Кроме того, на основе исходного аудио, очищенного от шумов, определяется пол голоса (мужской или женский), а затем настройки вокодера подбираются в соответствии с типом голоса.

Однако эта статья сконцентрирована на более простых аспектах без технических деталей. Давайте взглянем на процесс клонирования голоса в Wunjo AI.

Посмотрим, что там внутри!

Масштабирование телеграм-ботов на примере aiogram

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели21K

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

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

Читать далее

Разработка веб-приложения на Python с использованием FastAPI и Docker

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели32K

Целью данной лабораторной работы является создание веб-приложения для работы с абстрактными элементами (items). Для достижения этой цели мы будем использовать язык программирования Python, веб-фреймворк FastAPI и контейнеризацию с помощью Docker. Работа включает в себя установку необходимых инструментов, написание кода приложения, и контейнеризацию для обеспечения удобства развертывания.

Читать далее

Особенности сбора метрик. Запуск приложения gunicorn-ом в режиме мультипроцессинга

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

Представим следующую ситуацию. Ваш python веб-сервер собирает какие-то метрики prometheus_client-ом: счётчики, гистограммы и т. д, например, количество входящих запросов. Вы также настроили приложение, чтобы /metrics возвращал все ваши метрики. Если режим работы prometheus_client-a оставить по умолчанию, при запуске приложения gunicorn-ом с более чем одним воркером вы сталкиваетесь с проблемой консистентности метрик.

Что с этим делать? Давайте разберёмся.

Использование Insightface для быстрого поиска и сравнения лиц на изображениях

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

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

С вами Вадим Дарморезов, участник профессионального сообщества NTA.

Сегодня рассмотрю кейс поиска изображений-«близнецов», которые были размещены в pdf-файлах, насчитывающих десятки, а порой и сотни страниц.

В проектах, связанных с распознаванием лиц своеобразными «флагманами» являются библиотеки dlib/face‑recognition и свёрточные нейронные сети. При этом на просторах русскоязычного интернета довольно мало статей о библиотеке insightface. Именно о ее использовании хотелось бы поговорить более подробно. Всем, кому это интересно, добро пожаловать по кат.

Искать "близнецов"

Введение в архитектуру MLOps

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

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

MLOps, или Machine Learning Operations, это практика объединения машинного обучения и операционных процессов. Она направлена на упрощение и ускорение цикла разработки, тестирования, развертывания и мониторинга моделей машинного обучения. В MLOps применяются принципы DevOps, такие как автоматизация, непрерывная интеграция и доставка, для создания более эффективных и масштабируемых решений в области машинного обучения.

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

Читать далее

MoscowPython в «Кибердоме»: как прошла первая встреча питонистов в новом «месте силы» российского кибербеза

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

В октябре прошла 85-я встреча сообщества разработчиков MoscowPython, которая была частично посвящена кибербезопасности. Почему? Все просто: эксперты и зрители собрались в недавно открывшемся кибербез-хабе «Кибердом». На встрече прозвучали четыре доклада, авторы двух из них — сотрудники нашей компании, при поддержке которой проходило событие.

Если пропустили прямую трансляцию и хотите узнать о Python больше — этот материал для вас. Под катом собрали все самое интересное с митапа.

Читать

Добавляем DALL-E 3 в свой ChatGPT бот в Telegram

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

DALL-E 3, новая версия модели для генерации изображений от OpenAI, стала доступна публично через ChatGPT в октябре 2023 года и сразу стала очень популярной благодаря существенно лучшему качеству генерируемых изображений, по сравнению с предыдущими версиями модели.

В этом туториале добавляем генерацию изображений с помощью DALL-E 3 в наш Telegram чат-бот!

Читать далее

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

Исследование режима Copy-on-Write в pandas. Часть 3

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели2.7K

Появление в библиотеке pandas режима Copy‑on‑Write (CoW, копирование при записи) — это изменение, нарушающее обратную совместимость, которое окажет некоторое воздействие на существующий код, использующий pandas. Мы разберёмся с тем, как адаптировать код к новым реалиям, сделать так, чтобы он работал бы без ошибок тогда, когда режим CoW будет включён по умолчанию. Сейчас сделать это планируется в версии pandas 3.0, выход которой ожидается в апреле 2024 года. В первом материале из этой серии мы разбирались с особенностями поведения CoW, во втором — говорили об оптимизации производительности, имеющей отношение к новому режиму работы pandas.

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

Читать далее

Обработка результатов статистических наблюдений с помощью толерантных интервалов

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели6.2K

Здравствуйте, уважаемые читатели!

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

Читать далее

Практический гайд по процессам и потокам (и не только) в Python

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели30K

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

Цель статьи - понятно и доходчиво, используя примеры кода и бенчмарки рассказать о том какие инструменты есть в Python и как с их помощью добиться высокой производительности.

Читать далее

Моя б̶е̶з̶умная колонка или бюджетный DIY голосового ассистента для умного дома

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

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

Что в голове у змейки? Обучение нейросети играть в «Snake» генетическим алгоритмом

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

В 2020, когда случился локдаун, и к большому сожалению, появилось очень много свободного времени, мне захотелось познакомиться с Python. Начальный опыт c Pascal был еще со школы и универа, поэтому оставалось лишь придумать задачу и пойти её самоотверженно решать на питоне. Интересной задачей показалось смастерить игру змейку, прикрутить к ней мозги в виде перцептрона с парой скрытых слоёв, и путем кнута и яблока обучить цифровое животное выживать в жестоких реалиях двумерного мира :)                               

«У самурая нет цели, есть только путь»

Первый блин на производстве не отличается красотой, но опыт был получен. Наиболее привлекательным мне пришелся генетический алгоритм: отбор успешных змеек, скрещивание, частичная мутация генов и так тысячи раз до результата. Змейки, без указания им правил выживания, в тысячном поколении «понимали», что нужно стремиться съесть яблоко и никуда не врезаться, это вызывало ощущение прикосновения к чуду "It's Alive!!!"

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

Читать далее

Как заменить пропущенные значения в Pandas

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

Давайте рассмотрим распространенную проблему с пропущенными данными и способы ее решения.

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

Кстати, подписывайтесь на наши социальные сети, мы туда еженедельно публикуем топовый контент! Вот наш канал в телеграм и группа ВК.

Таблица 1: Пример набора данных о машинах

| Марка   | Модель  | Год выпуска | Цена | Нормализованные потери | Тип топлива |

|---------|---------|-------------|------|------------------------|-------------|

| Toyota  | Corolla | 2019        | 15000| 134                    | Бензин      |

| Honda   | Civic   | 2020        | 17000| NaN                    | Дизель      |

| Ford    | Mustang | 2018        | 25000| 235                    | NaN         |

| Subaru  | Outback | 2017        | NaN  | 178                    | Бензин      |

| Hyundai | Elantra | 2021        | 18000| 156                    | Гибрид      |

| Nissan  | Sentra  | 2019        | 15500| 170                    | Бензин      |

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

Читать далее

RecTools – OpenSource библиотека для рекомендательных систем

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

Если вы когда-либо работали с рекомендательными системами, то знаете, что все необходимые и самые часто используемые инструменты разбросаны по разным библиотекам. Более того, каждая из таких библиотек имеет много уникальных особенностей, к которым нужно приноровиться (например, разные форматы данных на вход).

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

К такому же выводу, видимо, пришли ребята из МТС – и выкатили в опенсурс RecTools. Это библиотека, где собраны самые часто используемые модели для рекомендательных систем. Также с её помощью можно максимально просто и быстро оценивать необходимые метрики. 

Давайте же посмотрим, что RecTools умеет, и как с этим работать.

Читать далее

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