Обновить
806.52

Python *

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

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

Тонкий клиент vs Orange Pi

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


Это не прямое сравнение, а скорее опыт дилетанта на примере двух одноплатных компьютеров. Вообще мой дилетантский стаж большой как по отношению к компьютерам, так и к электронике.
Читать дальше →

Как решить популярную в 2022 головоломку Wordle на Python

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

К старту курса по Fullstack-разработке на Python рассказываем, как решать Wordle. Worlde — новая головоломка, которая захватила внимание множества людей по всему миру. За подробностями приглашаем под кат.

Читать далее

9 библиотек Python для разработки игр

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


Разработка игр на Python — это не только PyGame, Tower Defense и платформеры, а это и DOOM, и MMORPG, и симуляторы свиданий/отношений, и визуальные новеллы, и конкурсы DARPA, и моделирование вселенной, и автотрекинг низкоорбитальных спутников.

Под катом список 9 библиотек для разработки игр и полезные гайды к каждой библиотеке.

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

Как я делал IAM на готовых решениях

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

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

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

Читать далее

Кластеризация изображений с помощью нейросети CLIP

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

В статье пойдёт речь о том, как можно автоматически разделить датасет изображений на кластеры, которые поделены по качественному контекстному признаку, благодаря эмбедингам из нашумевшей нейронной сети CLIP от компании Илона Маска. Расскажу на примере контента из нашего приложения iFunny.

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

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

Под катом расскажу, как мы построили логичную кластеризацию с помощью библиотеки HDBSCAN и векторов из нейронной сети CLIP, и каких результатов добились на выходе.

Читать далее

Python: Явное лучше неявного

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

Приветствую, хабраюзер! Эта история началась со странного падения Python приложения. Сначала я не придал внимания данной проблеме: приложение запущено в Openshift и периодически падает. К такому поведению может приводить всякое, например, иногда ноды обновляют, а иногда случаются аварии и тогда одну или несколько нод выводят из эксплуатации. Однако со временем проблема стала регулярной и начала проявляться некоторая закономерность. При этом в Sentry не было каких-либо ошибок. Я был полностью уверен, что это какая-то типовая проблема и ее можно быстро решить, но как же я ошибался.

Читать далее

NLP алгоритмы для мониторинга и AIOps с использованием библиотек Python (часть 2)

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

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

Читать далее

Игры прямо в Jupyter Notebook

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

Практика в Jupyter Notebook — это основа нашего курса по Data Science. Но интерактивный блокнот можно использовать не только для работы. За подробностями из блога разработчиков Jupyter Notebook приглашаем под кат.

Читать далее

Как нарисовать в TikZ молекулу с порядками связей

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

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

Узреть сий самопальный кошмар!

Разделяй и Властвуй. Разбор задач

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


Решение задач с помощью метода "Разделяй и Властвуй" или по-английски "Divide and Conquer" является одним из базовых методов по ускорению алгоритмов. Примером тому служит переход от квадратичной сложности пузырьковой сортировки или сортировки вставками к сложности \inline O(n\log{n}) при сортировке слиянием. Или переход от линейной сложности к логарифмической, при реализации поиска элемента в отсортированном массиве (см. бинарный поиск).


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

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

Как с помощью суперпикселей улучшить аннотацию данных

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

К старту флагманского курса по Data Science рассказываем о суперпикселях, которые улучшают сегментацию данных, и знакомим читателей с платформой Kili Technologies, в инструментах которой они реализованы. Под катом подробности и ссылка на код быстрой реализации алгоритма сегментации SLIC.

Читать далее

6 языков. Как не сойти с ума, переключаясь между раскладками клавиатуры

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

С изучением языков возникает проблема переключения раскладок клавиатуры. Когда два языка все просто, жамкаешь ALT+SHIFT (или что там у вас) и переключаешься на следующий язык. И ты всегда знаешь на какой именно язык переключился. Когда раскладок становится хотя бы 3 это уже вызывает проблемы. Потому что нажать ALT+SHIFT нужно один или несколько раз и непонятно сколько именно, не посмотрев в угол экрана.

Читать далее

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

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

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

Читать далее

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

5 грязных трюков в соревновательном Data Science, о которых тебе не расскажут в приличном обществе

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

Поговорим про способы жульничества в Data Science.

Читать далее

Использование рекуррентных нейронных сетей в Reinforcement Learning

Время на прочтение12 мин
Охват и читатели12K
В задачах машинного обучения для обучения модели может использоваться известная целевая переменная (задачи такого типа называются «обучение с учителем»), либо модель самостоятельно учится находить закономерности с имеющихся данных, не имея заранее известные правильные результаты (такой тип задач называется «обучение без учителя»). Обучение с подкреплением (Reinforcement Learning, RL) не относится ни к первому типу, ни ко второму, однако обладает свойствами и того, и другого. Этот вид машинного обучения в настоящее время бурно развивается, разрабатывается множество теоретических алгоритмов RL [1], однако основная причина всплеска интереса заключается в множестве практических задач, в которых применяется RL, прежде всего в автоматизации, оптимизации и робототехнике. Обучение с подкреплением эффективно прежде всего там, где системе требуется анализировать окружающую среду и выбирать политику поведения с учетом получаемого отклика.
Читать дальше →

PyQt6 — полное руководство для новичков

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

К старту курса по разработке на Python делимся детальным руководством по работе с современным PyQt для новичков. Чтобы читать было удобнее, мы объединили несколько статей в одну:

1. Первое приложение

2. Слоты и сигналы

3. Виджеты

За подробностями приглашаем под кат.

Читать далее

NLP алгоритмы для мониторинга и AIOps с использованием библиотек Python (часть 1)

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

Конечной задачей всей деятельности по созданию алгоритмов для обработки естественного языка (Natural Language Processing, NLP) является создание искусственного интеллекта (ИИ), который бы понимал человеческий язык, причем “понимал” в значении “осознавал смысл” (анализ текста) и “делал осмысленные высказывания” (синтез текста). Пока до этой цели ещё очень далеко, можно применять различные алгоритмические методы для извлечения какой-либо полезной информации из текстовых данных. А это уже очень полезно для ИТ мониторинга.
В этой статье мы расскажем о применении моделей ML для целей классификации поступающих данных.

Читать далее

Современный Python: как начать свой проект с нуля при помощи Pyenv и Poetry

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

Рассказываем, как начинающему разработчику установить и управлять различными версиями Python с помощью Pyenv, подготовить свой проект и создать виртуальное окружение через Poetry.

Читать далее

RustCon Russia 2021: как прошла конференция, и о чем там говорили

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

RustCon Russia 2021: как прошла конференция, и что на ней обсуждали

Читать далее

«Слабые» ссылки в CPython

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

Модуль weakref позволяет создавать "слабые" ссылки на объекты.

"Слабой" ссылки не достаточно, чтобы объект оставался "живым": когда на объект ссылаются только "слабые" ссылки, сборщик мусора удаляет объект и использует память для других объектов. Однако, пока объект не удалён, "слабая" ссылка может вернуть объект, даже если не осталось обычных ссылок на объект.

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

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

WeakKeyDictionary и WeakValueDictionary используюют "слабые" ссылки в своей реализации и устанавливают callback функции на "слабые" ссылки, которые сообщают словарю, когда ключ или значение удаляется сборщиком мусора. WeakSet реализует интерфейс множества как WeakKeyDictionary.

Finalize предоставляет простой путь зарегистрировать cleanup функцию, которая вызывается, когда объект удаляется. Это проще, чем установить callback функцию на "слабую" ссылку, поскольку модуль автоматически гарантирует, что finalizer не будет удалён до того, как будет удалён объект.

Читать далее

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