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

Python *

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

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

Эвекция Луны, Вариация Луны, Звездный Лунный месяц в часовых отрезках времени в радиоактивном распаде

Время на прочтение9 мин
Количество просмотров1.6K
Читать далее

Простая программная генерация видео и картинок без стороннего API

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

В этой статье я покажу простой способ генерации видео программами на Python и C/C++ без использования стороннего API. Вам так же потребуется ffmpeg, без него вы не сможете конвертировать файлы в читаемые форматы!

Читать далее

Асинхронный телеграм-бот с вебхуками на Heroku

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

Разрабатывая телеграм-бота для проведения викторины, я даже не задумывался каким количеством человек он будет использоваться и как оказалось очень зря …

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

Читать далее

Разбор задачи Титаник на Kaggle (Baseline)

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

В статье я покажу как искать зависимости и проверять гипотезы. Мы познакомимся с данными и реализуем предсказание на основе одной логики=)

Читать далее

Разбираем алгоритмы компьютерной графики. Часть 1 — «Starfield Simulation»

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

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

Действовать буду по следующему принципу: беру какой-либо графический эффект (из демо, программы, игры – не важно) и пытаюсь реализовать этот же эффект максимально простым и понятным способом, разъясняя что, как и почему сделано именно так.

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

Читать далее

Пишем асинхронного Телеграм-бота

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

Привет! Меня зовут Александр, я руководитель бэкенд-разработки в KTS.

Сегодня я покажу, как написать своего Телеграм-бота на основе asyncio и aiohttp.

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

Статья предназначена для начинающих асинхронных программистов.

Читать далее

DANets: Глубокие абстрактные сети для классификации и регрессии табличных данных

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

Аннотация

Табличные данные широко распространены в различных реальных приложениях. Хотя многие широко используемые нейронные компоненты (например, свертки) и расширяемые нейронные сети (например, ResNet) были разработаны сообществом машинного обучения, только немногие из них показали свою эффективность для табличных данных, и лишь немногие проекты были релевантно адаптированы к табличным структурам данных. В этой статье мы предлагаем новый и гибкий нейро-компонент для табличных данных, называемый абстрактным слоем (ABSTLAY), который обучаем явно группировать коррелирующие входные объекты и генерировать объекты более высокого уровня семантической абстракции (формализации). Кроме того, мы разрабатываем метод репараметризации структуры для сжатия слоя ABSTLAY, тем самым значительно снижая вычислительную сложность на контрольном слое. Специальный базовый блок строится с использованием ABSTLAY, и мы создаем семейство глубоких абстрактных сетей (DANET) для классификации табличных данных и регрессии путем группировки (таксономии) таких блоков. В DANET введен специальный кратчайший путь для извлечения информации из необработанных табличных объектов, способствующий взаимодействию объектов на разных уровнях. Всесторонние эксперименты с семью реальными табличными наборами данных показывают, что наши ABSTLAY и DANET эффективны для классификации и регрессии табличных данных, а их вычислительная сложность не превосходит сложности конкурентных методов. Кроме того, мы оцениваем прирост производительности DANET по мере его углубления, проверяя модифицируемость нашего метода. Наш код доступен по адресу https://github.com/WhatAShot/DANet .

Читать далее

Рисуем красивые трейсбеки, перехватывая исключения в Python

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

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

На пути к этой цели мы узнаем о том, как реализовывать и использовать собственные перехватчики исключений (exception hook), которые позволяют убрать из трейсбеков весь «информационный шум». Мы поговорим о том, как улучшить читабельность отчётов о трассировке стека, как выводить в них лишь то, что нужно для решения проблем с Python-кодом и с возникающими в процессе его работы исключениями. Кроме того, мы посмотрим на несколько потрясающих Python-библиотек, в которых имеются готовые к использованию, хорошо сделанные перехватчики исключений. Их можно использовать без необходимости написания собственного кода перехватчиков.

Читать далее

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

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

Модели трансформеров на данный момент являются state-of-the-art решениями в мире обработки естественного языка. Новые, более крупные и качественные модели появляются почти каждый месяц, устанавливая новые критерии производительности по широкому кругу задач. В данной статье мы будем использовать модель трансформера для бинарной классификации текста.

Читать далее

Безопасность веб-приложений

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

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

Читать далее

Geo data in Python

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

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

Читать далее

Массовая загрузка, обработка и выгрузка изображений в Битрикс на Python3

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

В этой статье мы популярно объясняем на собственном опыте как организовать массовую выгрузку, обработку и загрузку фотографий товаров из Bitrix, используя Python и минимальное количество SQL. Для прочтения будет полезно людям, выполняющим схожие задачи, не будучи при этом знакомыми с Битриксом.

Читать далее

Парсинг контактов адресной книги Яндекс.почты в CSV на Python

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

Как-то в процессе работы возник вопрос как на корпоративном домене в Яндексе выгрузить все контакты организации из адресной книги Яндекс.почты в файл .csv или .xls, чтобы было красиво и потом удобно работать с этими данными в MS Excel.

Оказывается, что стандартными средствами Яндекс.почты можно выгрузить только в Vcard формат, что мне совсем не подходит. Нужно потом его как-то конвертировать сторонними средствами. Такие попадались на просторах интернета, что совсем неудобно.

На помощь пришел Python.

C помощью библиотеки BeautifulSoup очень удобно и быстро парсить html и вынимать всю нужную нам информацию.

Проведя анализ исходного кода страницы и выведя особые закономерности в представлении на ней информации было решено “В бой!”.

Для парсинга нам понадобится Python 3, библиотека BeautifulSoup и браузер с инспектором кода.

Читать далее

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

Применение exception при накате Python-скрипта на Huawei

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

Обычно мы можем встретить три проблемы при попытке запустить Python-скрипт на сети Huawei (впрочем, и на любой другой): это отсутствие L3 связности с устройством, это неверные имя пользователя или пароль, и это SSH-неполадки. Можно заметить, что любая из этих проблем остановит накат скрипта и сгенерирует один и тот же лог, большая часть из которого сложна для восприятия. В этой статье я постарался рассказать о небольшом улучшении предыдущего кода, которое сообщит о конкретной ошибке на устройстве, и продолжит накат скрипта до конца.

Весь код приведу в конце статьи, а его запуск можно посмотреть на видео демонстрации.

Читать далее

Аналитика чат-ботов на Python

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

В 2020 году я написал статью Аналитика для Telegram-ботов с достаточно простым решением, с 2 метриками и неоптимальным хранением данных. После появления рекламы в Telegram, аналитика стала ещё более необходима, так как теперь можно рекламировать ботов напрямую пользователям. Плюсы моего нового решения в сравнение с другими на рынке: оно бесплатно, легко внедряется, 20 метрик для аналитики, можно создавать свои метрики, данные хранятся только у вас, подходит для любого количества сообщений в месяц, хранит историю за всё время подключения, может хранить данные по любому количеству ботов в одном месте. Также это решение можно внедрить не только для чат-ботов Telegram, а и для любых других чат-ботов(Slack, Discord, Vk и так далее).

Читать далее

Доверять Джини или нет: вот в чем вопрос

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

Коэффициент Джини (или индекс Джини), кривая Лоренца, TPR (true positive rate) и FPR (false positive rate) – одни из самых популярных атрибутов экономических задач, решаемых с помощью машинного обучения. Все они используются для оценки качества модели и, так или иначе, связаны друг с другом. Предлагаю вспомнить, как они рассчитываются.

Читать далее

Анонимизация базы данных или как быть уверенным, что ты не нарушаешь закон “О персональных данных”

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

В настоящее время практически все ИТ-продукты работают с персональной информацией пользователя: ФИО, телефон, e-mail, паспортные и другие идентифицирующие данные. Для  обеспечения защиты прав и свобод, человека и гражданина при обработке его персональных данных в Российской Федерации существует Федеральный закон от 27.07.2006 N 152-ФЗ “О персональных данных”.

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

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

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

Читать далее

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 3

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

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

Сегодня продолжим тему обработки изображений. На прошлом уроке мы пытались при помощи размытия удалить из изображения такие дефекты, как гауссовский шум и царапины. С первым что-то более-менее получилось, а вот с царапинами ничего не вышло. Да, кстати, в комментах мне был задан вопрос: «Откуда берется гауссовкий шум?»

Отвечаю:

Гауссовский шум может возникнуть, например, от помех. Или, если у нас было плохое освещение, картинка получилась темная, и мы попытались как-то исправить это, например, увеличить контрастность. Шумы при этом тоже усилятся.

Ладно. Идем дальше. Как же нам быть с царапинами? А для их удаления можно воспользоваться медианным фильтром:

Читать далее

Оптимизация использования памяти в Python-приложениях

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

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

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

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

Читать далее

Скриптинг без скриптинга

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

Уже давно считается, что многие (если не все) игры или приложения можно улучшить, добавив в них поддержку скриптов.

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

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

Читать далее

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