Обновить
512K+

Python *

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

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

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

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

Векторные представления (эмбеддинги, векторы) — это по‑настоящему приятный инструмент, но в любом рассказе о векторных представлениях эта техника скрыта за ворохом каких‑то страшных словес.

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

Я выступал с лекцией о векторных представлениях на конференции PyBay 2023. Эта статья — улучшенная версия той самой лекции, и она должна быть интересна сама по себе, даже если не смотреть видео.

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

38-минутная видеоверсия

Вот видеоверсия той лекции, которую я прочитал на PyBay.

Читать далее

Сбалансированные данные – успех в ML: Oversampling и Undersampling

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

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

Существуют такие подходы к устранению дисбаланса какOversampling и Undersampling. Oversampling – это процесс увеличения количества примеров в менее представленных классах, в то время как Undersampling – это процесс уменьшения количества примеров в более представленных классах. Оба эти метода имеют свои преимущества и недостатки, и выбор между ними зависит от конкретной задачи и характеристик данных.

Читать далее

За кулисами публикации «24 часа невидимой эпидемии»

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

Сегодня я расскажу о том, как был подготовлен материал об одиночестве, «24 hours in an invisible epidemic», опубликованный на платформе Pudding.

Всё началось с моей одержимости материалами Американского обследования использования времени (American Time Use Survey, ATUS). Каждый год в ходе соответствующего мероприятия проводится опрос десятков тысяч американцев. Им предлагают проследить за одним днём своей жизни. Полученные данные позволяют получить некие общие показатели и, при желании, добраться до каждого респондента и узнать о том, чем занимался именно он.

Читать далее

PyZelda своими руками или как геймдевить без Unreal, Unity и кредитов

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

Хабры и Хаброчки, я хотел бы перед самой статьёй обсудить вопрос целесообразности писать свой движок, вместо готовых решений. Есть куча статей, которые опишут разные движки от более популярных до менее. Я бы хотел затронуть немного другой вопрос: "Как человеку, который изучал программирование много лет заняться геймдевом?". Обычно, есть два пути в геймдев:

Умышленный путь. Это когда человек, который играет в игры рано или поздно решит их создать. Тогда, он выбирает где ему учиться этому и выучивает игровые движки и C-образные языки к ним (чаще всего, C#).

Путь прогеров. Программист увлекается математикой и пишет код. Так или иначе, везде где есть код — есть компьютер. Цифровые развлечения (в том числе и игры) не проходят мимо тех людей, который постоянно пишут код. Так, часть прогеров решает написать свою игру и начать свой путь в геймдев. Об этом пути мы и поговорим.

Так зачем выбирать "сложный" путь? Во-первых, не для всех он сложнее. Лично мне сложнее перейти на C# с использованием Unity, чем написать новый проект на Python. Во-вторых, люди не всегда понимают сам движок. Сейчас я преподаю в институте "Бизнеса и Дизайна". Это один из первых профильных учреждений, занимающихся геймдевом. И вот у студентов я спросил зачем им движок. Каково было моё удивление, что далеко не все понимаю, вообще зачем он нужен. Спойлер, не из-за пресетов.

Всех заинтересовавшихся, приглашаю в мир змеиных игр!

Погрузиться в змееленд

АБ тесты и подводные камни при их автоматизации

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

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

На тему АБ-тестирования доступны как статьи на Хабре, так и целые книги (неполный список литературы в конце). В основе АБ-теста лежит следующая идея - случайно разделить пользователей на две или более группы, в одной из которых исследуемая функциональность выключена, а в других - включена. Затем можно сравнить метрики и сделать выводы.

Читать далее

Мамкин программист про ИИ, «программисты скоро будут не нужны» и прочие страшилки

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

Недавно на Хабре вышел перевод статьи под названием: «Классическое программирование на грани вымирания» с постапокалиптической картинкой, где автор буквально пишет, что «Приближается конец эпохи классических компьютерных наук, и большинство из нас словно динозавры в ожидании падения метеорита». Если коротко, данная статья о том, что классические компьютерные науки становятся менее актуальными на фоне развития искусственного интеллекта и современных технологий. Автор рассказывает о своем опыте в области компьютерных наук, полученном в 80-х и 90-х годах, и подчеркивает, что, несмотря на то что классические подходы к программированию и алгоритмам всё еще актуальны, но в будущем (горизонт автор не указывает), скорее всего, ИИ с самообучаемыми системами заменит программистов. В будущем студентам факультетов компьютерных наук не нужно будет изучать традиционные навыки, такие как работа с двоичными деревьями или программирование на С++, обучение таким вещам станет неактуальным, потому что от инженеров будущего будет требоваться обучение и запуск генеративных моделей.

Я читаю Хабр довольно давно и очень люблю этот ресурс. При этом здесь регулярно возникают статьи, типа «Если хочешь программировать, начни с языка Си» или наоборот, «Python — это простой язык, с которым любой идиот может разобраться» (статьи такой направленности иногда нещадно минусуют). Есть также и третья категория статей о том, что программисты скоро станут попросту не нужны (как статья, которая недавно опубликована).

Читать далее

Процесс разработки приложения Python по дедупликации файлов с использованием контрольных сумм

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

История начинается с несложной задачи и небольшого Python приложения.

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

С источников файлы не удаляются пока в этом не появится острая необходимость, в первую очередь потому, что это «естественная» резервная копия. Ну и бывает удобно иметь какие‑то фотографии и видео у себя под рукой.

В процессе своего повествования, постараюсь пояснить принятые мной решения, некоторые из которых прямо напрашиваются на решение иным способом.

Читать далее

Изучаем и парсим биржевую информацию Мосбиржи. Наш первый парсер на Python, разбор кода

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

Как устроен ISS MOEX (информационно-статистический сервер Московской Биржи) и как можно парсить с него биржевые данные. Разбор кода программы. Это первое знакомство с MOEX, дальше будем изучать куда как более актуальный для алготрейдинга продукт мосбиржи - ALGOPACK. Однако перед этим общее знакомство с архитектурой iss moex должно быть. Стратегическая задача - использовать данные для алготрейдинга (работы торгового робота) напрямую с московской биржи.

Читать далее

Как прошло обновление курса «Python-разработчик»: новые сюжеты, Pytest и переработка алгоритмов

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

Привет! Это команда курса «Python-разработчик». Недавно мы провели рефакторинг — большое обновление программы. Для этого мы изучили фидбек студентов, выявили точки роста и актуализировали набор технологий исходя из запросов рынка.

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

Читать далее

LSTM и GRU

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


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

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

Как учить Python? Книги, видео, курсы

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

What’s up guys?


Python - это интерпретируемый, высокоуровневый язык программирования, который был создан в конце 1980-х годов Гвидо ван Россумом. Python быстро стал одним из самых популярных языков программирования в мире благодаря своей простоте, и широкому спектру применений. Сейчас Python используется практически везде, от науки и финансов, до веб-разработки и ИИ.

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

 

Читать далее

Как написать проект по автоматизации на Python, Pytest и Playwright и настроить запуск автотестов в CI с нуля

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

Привет, Хабр! Меня зовут Александр Бехтерев, я работаю QA-инженером в Учи.ру. Не так давно перед нами встала задача перехода с библиотеки Selenium на новую и мощную библиотеку Playwright. Этот переход был вызван желанием улучшить процессы тестирования и попробовать что-то новое. 

В этой статье я постараюсь подробно рассмотреть процесс создания проекта на Python, Pytest и Playwright с применением паттерна Page Object, а также оставлю шаблон yml, который позволит запускать автотесты в CI. 

Читать далее

Быстрый расчет CRC c полиномом MODBUS на языке Python

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

Реализация расчета CRC16 через предварительно вычисленные массивы. Краткое описание работы.

По сути это реализация расчета на языке Python из приложения Б к описанию системы команд приборов учета Меркурий.

Читать далее

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

Бенчмарк HTML парсеров в Python: сравнение скорости

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

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

Меня зовут Вадим Москаленко и я разработчик инновационных технологий Страхового Дома ВСК. В этой статье хочу поделиться с вами информацией по проведенному сравнению производительности нескольких популярных библиотек для простого HTML-парсинга.

При необходимости сбора данных с HTML или XML, многим python-разработчикам сразу вспомнятся две популярные библиотеки «BeautifulSoup4» и «lxml» — они весьма удобны и стали широко применяемыми. Но что, если в нашем проекте важна скорость сбора данных? Возникает вопрос: кто из них быстрее и есть ли еще более быстрые библиотеки? При поиске данной информации на Хабре, я нашел подобные статьи, но им уже несколько лет. Так как прогресс не стоит на месте и появляются новые инструменты или те, о которых еще не слышали, мне было интересно провести личное исследование и поделиться информацией.

Читать далее

Я знаю, что ты делал этой ночью

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

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

Сегодня с вами участники профессионального сообщества NTA Промкин Михаил, Мымрин Дмитрий и Господарикова Ирина.

Одной из областей применения ИИ сегодня является автоматизация контроля за сотрудниками. В данном посте мы рассмотрим приложение технологий ML к задаче детектирования спящих людей (в частности, охранников на рабочем месте) по видеозаписям камер наблюдения.

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

Узнать больше

Сколько строк на C нужно, чтобы выполнить a + b в Python?

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

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

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

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

Читать далее

А/Б тестирование с CUPED: детальный разбор

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

Хабр, привет! Сегодня обсудим, как применять CUPED для повышения чувствительности А/Б тестов. Рассмотрим на простом примере принцип работы CUPED, покажем теоретически за счёт чего снижается дисперсия и приведём пример оценки эксперимента. Обсудим, как выбирать ковариату, как работать с бинарными метриками и что делать при противоречивых результатах.

Читать далее

«Как пресейл инженер телеграм ботом дверь открывал» или «Ты куда полез?»

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

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

Сама статья - это результат моего исследования в рамках расширения своих профессиональных навыков. 

Что будет в статье?

Как написать рабочий, но не идеальный код, чтобы через телеграм бота открыть дверь в СКУД Sigur;

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

Как все это великолепие установить и запустить в Docker.

Читать далее

Как подключить Yandex GPT к своему проекту на Python

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

6 декабря Яндекс открыл доступ к своим диалоговым моделям (моделям генерации) и векторного представления текста через API. API уже доступно в Yandex Cloud.

Вчера мне потребовалось применить его в приложении, однако, не удалось найти руководства, как сделать это быстро. Документация Яндекса хороша, но предполагает, что опыт работы с Yandex Cloud уже имеется. В отсутствие такого опыта документация выглядит фрагментированной.

Предлагаю пошаговый гайд, который, надеюсь, сэкономит читателю, не знакомому с Yandex Cloud, часик-другой.

Для того, чтобы использовать Yandex GPT в Вашем Python-проекте, нужно выполнить 4 шага:

Читать далее

Как мы делаем проекты

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

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

Читать далее