Inside ML: индустриальные секреты машинного обучения
Онлайн-магистратура «Искусственный интеллект» от Вышки запускает мини-курс, где разберём, как ML работает в индустрии: от Computer Vision и AutoML до LLM и мультиагентных систем.
Что вас ждёт:
— 5 вебинаров от практиков из Avito, Сбера, Ozon
— Кейсы: как выигрывают Kaggle AutoML Grand Prix, запускают CV-системы и внедряют LLM в бизнес
— Q&A с экспертами: можно спросить о задачах и карьерном треке в ML
Для кого:
— IT-специалистам, которые хотят перейти в ML или усилить свою экспертизу
— Тем, кто хочет понять, что востребовано сейчас на рынке
— Тем, кто планирует сделать шаг в сторону applied ML или сменить специализацию внутри IT
Когда: до 15 июля, 19:00 (по МСК)
🔗 Зарегистрироваться
Онлайн-магистратура «Искусственный интеллект» от Вышки запускает мини-курс, где разберём, как ML работает в индустрии: от Computer Vision и AutoML до LLM и мультиагентных систем.
Что вас ждёт:
— 5 вебинаров от практиков из Avito, Сбера, Ozon
— Кейсы: как выигрывают Kaggle AutoML Grand Prix, запускают CV-системы и внедряют LLM в бизнес
— Q&A с экспертами: можно спросить о задачах и карьерном треке в ML
Для кого:
— IT-специалистам, которые хотят перейти в ML или усилить свою экспертизу
— Тем, кто хочет понять, что востребовано сейчас на рынке
— Тем, кто планирует сделать шаг в сторону applied ML или сменить специализацию внутри IT
Когда: до 15 июля, 19:00 (по МСК)
🔗 Зарегистрироваться
❤5
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Совет дня Python: быстро получить частоту элементов в списка
Когда нужно узнать, сколько раз каждый элемент встречается в списке — не пиши вручную циклы. Используй
📌 Удобно для:
— подсчёта слов
— анализа логов
— быстрой статистики по спискам
@pythonl
Когда нужно узнать, сколько раз каждый элемент встречается в списке — не пиши вручную циклы. Используй
collections.Counter
:
from collections import Counter
items = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
freq = Counter(items)
print(freq)
# 👉 Counter({'apple': 3, 'banana': 2, 'orange': 1})
📌 Удобно для:
— подсчёта слов
— анализа логов
— быстрой статистики по спискам
@pythonl
❤18👍7🔥5
Что общего у Netflix, Google и Spotify
Все эти компании используют Python для разработки своих продуктов. Python подходит для создания веб-приложений, анализа данных и даже машинного обучения.
Познакомиться с этим универсальным языком можно на бесплатном курсе Нетологии. За 5 занятий вы не просто изучите теорию, а создадите 2 рабочих проекта.
Сначала напишете планировщик задач. Начнёте с кода, который запрашивает дату и описание задачи, добавите условные операторы и циклы, встроите в программу уникальную функцию с помощью готовых библиотек. После создадите телеграм-бота и перенесёте в него функционал планировщика — на выходе у вас будет полноценное приложение.
Помощь в практике и ответы на вопросы сможете получить в чате с экспертами и однокурсниками.
Записывайтесь
Реклама. ООО "Нетология". ИНН 7726464125 Erid 2VSb5xHtdRi
Все эти компании используют Python для разработки своих продуктов. Python подходит для создания веб-приложений, анализа данных и даже машинного обучения.
Познакомиться с этим универсальным языком можно на бесплатном курсе Нетологии. За 5 занятий вы не просто изучите теорию, а создадите 2 рабочих проекта.
Сначала напишете планировщик задач. Начнёте с кода, который запрашивает дату и описание задачи, добавите условные операторы и циклы, встроите в программу уникальную функцию с помощью готовых библиотек. После создадите телеграм-бота и перенесёте в него функционал планировщика — на выходе у вас будет полноценное приложение.
Помощь в практике и ответы на вопросы сможете получить в чате с экспертами и однокурсниками.
Записывайтесь
Реклама. ООО "Нетология". ИНН 7726464125 Erid 2VSb5xHtdRi
❤4😱3
🚀 Быстрый HTTP‑сервер на базе asyncio.Protocol
В этом гайде показано как создать минималистичный HTTP‑сервер на Python, используя низкоуровневый API
Основные пункты:
1. Сокет-обработчик (`ConnectionHandler`)
- Наследуется от
- Хранит буфер, транспорт и маппинг маршрутов.
2. Парсинг HTTP-запросов
- В
- Запрос считается полным при обнаружении
- Затем из заголовков извлекаются
3. Маршрутизация через декоратор
- Класс
- Обработчик вызывает либо корутины, либо возвращает статический HTML.
4. Отправка ответа
- Используется
- После
5. Простой запуск сервера
- Через
-
6. Высокая производительность
Сервер обрабатывает ~100 000 запросов за ~4.2 с при нагрузке 100 одновременных соединений, в то время как FastAPI справляется за ~32 с :contentReference[oaicite:1]{index=1}.
Зачем это полезно:
- Полный контроль над TCP-соединениями и буферами.
- Существенно выше скорость при простых HTTP-API.
- Отличная демонстрация возможностей, которые остаются скрытыми за высокоуровневыми фреймворками.
Поддержка сообщества:
На Reddit статья получила высокую оценку как "отличный материал по Asyncio Protocols"
https://jacobpadilla.com/articles/asyncio-protocols
@pythonl
В этом гайде показано как создать минималистичный HTTP‑сервер на Python, используя низкоуровневый API
asyncio.Protocol
, что делает его быстрее и гибче, чем решения на основе asyncio.Streams
или фреймворков типа FastAPI.Основные пункты:
1. Сокет-обработчик (`ConnectionHandler`)
- Наследуется от
asyncio.Protocol
— реакции на события connection_made
, data_received
, connection_lost
. - Хранит буфер, транспорт и маппинг маршрутов.
2. Парсинг HTTP-запросов
- В
data_received
накапливаются байты. - Запрос считается полным при обнаружении
\r\n\r\n
. - Затем из заголовков извлекаются
method
, path
, другие поля.3. Маршрутизация через декоратор
- Класс
HTTPServer
собирает функции-обработчики для путей. - Обработчик вызывает либо корутины, либо возвращает статический HTML.
4. Отправка ответа
- Используется
asyncio.create_task
внутри колбэка, чтобы запустить send_response
— где формируется ответ с HTTP-кодом, заголовками и телом. - После
write()
соединение закрывается.5. Простой запуск сервера
- Через
loop.create_server()
создаётся экземпляр ConnectionHandler
. -
serve_forever()
запускает обработку соединений.6. Высокая производительность
Сервер обрабатывает ~100 000 запросов за ~4.2 с при нагрузке 100 одновременных соединений, в то время как FastAPI справляется за ~32 с :contentReference[oaicite:1]{index=1}.
Зачем это полезно:
- Полный контроль над TCP-соединениями и буферами.
- Существенно выше скорость при простых HTTP-API.
- Отличная демонстрация возможностей, которые остаются скрытыми за высокоуровневыми фреймворками.
Поддержка сообщества:
На Reddit статья получила высокую оценку как "отличный материал по Asyncio Protocols"
https://jacobpadilla.com/articles/asyncio-protocols
@pythonl
❤16👍4🤩2
🐍 20 ещё более продвинутых однострочников на Python — часть 3
Если ты уже пишешь на Python профессионально, вот ещё приёмы, которые реально экономят строки и читаются на лету:
1. 🗃️ Группировка по ключу без pandas
2. 🪄 Быстрое глубокое копирование объекта
3. 📤 Отправка JSON через POST
4. 📌 Проверка, что файл — это символическая ссылка
5. 🧩 Быстрое объединение нескольких словарей
6. 🧪 Проверить, что список отсортирован
7. 🔍 Найти все подстроки по регулярке
8. 🌐 Извлечь домен из URL
9. 🧬 Преобразовать список строк в int
10. 📚 Считать CSV в список словарей
11. 🔄 Превратить int в побитовую строку
12. 📤 Сохранить объект в JSON-файл
13. 🧮 Убрать пустые строки из списка
14. 🧾 Распарсить query string в словарь
15. 🧰 Получить уникальные строки, сохранив порядок
16. 📈 Получить индекс максимального значения
17. 🪛 Проверить, что список вложенный (2D)
18. 🧱 Убрать все символы кроме букв и цифр
19. ⌛ Ограничить время выполнения кода
20. 📦 Получить структуру всех полей dataclass
📌 Часть 1
📌 Часть 2
@pythonl
Если ты уже пишешь на Python профессионально, вот ещё приёмы, которые реально экономят строки и читаются на лету:
1. 🗃️ Группировка по ключу без pandas
groups = defaultdict(list); [groups[k].append(v) for k, v in data]
2. 🪄 Быстрое глубокое копирование объекта
copy = pickle.loads(pickle.dumps(obj, -1))
3. 📤 Отправка JSON через POST
r = requests.post(url, json=payload)
4. 📌 Проверка, что файл — это символическая ссылка
is_symlink = Path(p).is_symlink()
5. 🧩 Быстрое объединение нескольких словарей
merged = {**d1, **d2, **d3}
6. 🧪 Проверить, что список отсортирован
is_sorted = all(a <= b for a, b in zip(lst, lst[1:]))
7. 🔍 Найти все подстроки по регулярке
matches = re.findall(r'\d+', text)
8. 🌐 Извлечь домен из URL
domain = urlparse(url).netloc
9. 🧬 Преобразовать список строк в int
nums = list(map(int, str_list))
10. 📚 Считать CSV в список словарей
rows = list(csv.DictReader(open('file.csv')))
11. 🔄 Превратить int в побитовую строку
bits = f'{num:08b}'
12. 📤 Сохранить объект в JSON-файл
json.dump(obj, open('data.json', 'w'), indent=2)
13. 🧮 Убрать пустые строки из списка
lines = [l for l in lines if l.strip()]
14. 🧾 Распарсить query string в словарь
params = dict(parse_qsl('a=1&b=2'))
15. 🧰 Получить уникальные строки, сохранив порядок
seen = set(); uniq = [s for s in seq if not (s in seen or seen.add(s))]
16. 📈 Получить индекс максимального значения
idx = max(range(len(lst)), key=lst.__getitem__)
17. 🪛 Проверить, что список вложенный (2D)
is_nested = all(isinstance(i, list) for i in lst)
18. 🧱 Убрать все символы кроме букв и цифр
clean = re.sub(r'\W+', '', text)
19. ⌛ Ограничить время выполнения кода
signal.alarm(2); try: ... except: ...
20. 📦 Получить структуру всех полей dataclass
fields = [f.name for f in dataclasses.fields(MyClass)]
📌 Часть 1
📌 Часть 2
@pythonl
👍13❤10🔥6🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
🐍 Продвинутый Python‑совет дня
💡 Используй слоты (`__slots__`) для оптимизации классов, когда тебе нужно много однотипных объектов.
По умолчанию Python хранит атрибуты объектов в словаре (`__dict__`), что удобно, но неэффективно по памяти. Если ты точно знаешь, какие поля будут у объекта — зафиксируй их:
📈 Выгода:
- Уменьшает использование памяти до 30–50% для миллионов объектов
- Ускоряет доступ к полям (нет __dict__)
- Запрещает создание произвольных новых атрибутов (меньше багов)
🧠 Подходит:
- Для численных расчётов (вместо namedtuple)
- При генерации большого количества однотипных объектов
- В data-heavy структурах (например, парсеры, AST, графы и т.п.)
Python — динамичный язык, но когда знаешь структуру данных заранее, slots дают тебе контроль и производительность.
👉 Видео
💡 Используй слоты (`__slots__`) для оптимизации классов, когда тебе нужно много однотипных объектов.
По умолчанию Python хранит атрибуты объектов в словаре (`__dict__`), что удобно, но неэффективно по памяти. Если ты точно знаешь, какие поля будут у объекта — зафиксируй их:
class Point:
slots = ("x", "y") # только эти атрибуты допустимы
def __init__(self, x, y):
self.x = x
self.y = y```
📈 Выгода:
- Уменьшает использование памяти до 30–50% для миллионов объектов
- Ускоряет доступ к полям (нет __dict__)
- Запрещает создание произвольных новых атрибутов (меньше багов)
🧠 Подходит:
- Для численных расчётов (вместо namedtuple)
- При генерации большого количества однотипных объектов
- В data-heavy структурах (например, парсеры, AST, графы и т.п.)
Python — динамичный язык, но когда знаешь структуру данных заранее, slots дают тебе контроль и производительность.
👉 Видео
❤15🔥6👍4
Если вам нужно открыть *N* файлов, захватить *M* блокировок или временно изменить кучу настроек, а их количество известно только во время выполнения, традиционный
with … as …:
не подойдёт. Вместо «пирамиды» вложенных with
воспользуйтесь ExitStack:
from contextlib import ExitStack
filenames = ["a.log", "b.log", "c.log"]
with ExitStack() as stack:
files = [stack.enter_context(open(name)) for name in filenames]
# теперь у вас список открытых файлов, с которыми можно работать
for f in files:
print(f.readline())
# здесь ExitStack автоматически закроет все файлы, даже если их было 1000
Почему это круто
- Управляет произвольным числом контекстов: добавляете их в цикл, условно, через функции-фабрики.
- Гарантирует корректный rollback при исключениях: всё, что добавлено в ExitStack, будет закрыто в обратном порядке.
- Упрощает сложную инициализацию: можно динамически «подключать» то, что нужно именно сейчас (файлы, блокировки, сетевые соединения).
🔧 Где пригодится
- Пакетная обработка файлов и архивов.
- Тестовые стенды с кучей временных ресурсов.
- Плагины, которые могут регистрировать собственные контекст-менеджеры.
Теперь никакого «каскада из with» — один аккуратный ExitStack.
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥11❤9
📊 Python for Nonprofits — книга и код для анализа данных в НКО
Это полноценное учебное пособие по Python, заточенное под нужды некоммерческих организаций.
Автор — Kenneth Burchfiel — собрал в одном репозитории и книгу, и рабочие блокноты для реального анализа данных.
▪ Импорт и очистка данных (CSV, API, Google Sheets)
▪ Описательная статистика, линейные регрессии
▪ Визуализация: графики, интерактивные карты (Plotly, Folium)
▪ Dash-приложения и публикация дашбордов
▪ Всё оформлено как Jupyter-книга: можно читать, запускать, менять
Кому подойдёт:
– начинающим дата-аналитикам, которые хотят делать полезные проекты
– НКО, работающим с открытыми данными и отчётами
– преподавателям, ищущим учебный курс по Python с практикой
💡 Можно читать онлайн или скачать как книгу. Лицензия MIT — можно использовать где угодно.
📘 Подробнее и исходники: https://github.com/kburchfiel/pfn
@pythonl
Это полноценное учебное пособие по Python, заточенное под нужды некоммерческих организаций.
Автор — Kenneth Burchfiel — собрал в одном репозитории и книгу, и рабочие блокноты для реального анализа данных.
▪ Импорт и очистка данных (CSV, API, Google Sheets)
▪ Описательная статистика, линейные регрессии
▪ Визуализация: графики, интерактивные карты (Plotly, Folium)
▪ Dash-приложения и публикация дашбордов
▪ Всё оформлено как Jupyter-книга: можно читать, запускать, менять
Кому подойдёт:
– начинающим дата-аналитикам, которые хотят делать полезные проекты
– НКО, работающим с открытыми данными и отчётами
– преподавателям, ищущим учебный курс по Python с практикой
💡 Можно читать онлайн или скачать как книгу. Лицензия MIT — можно использовать где угодно.
📘 Подробнее и исходники: https://github.com/kburchfiel/pfn
@pythonl
❤15👍5🔥5😱1
This media is not supported in your browser
VIEW IN TELEGRAM
🛠 Вышел новый генератор CAD‑моделей по чертежам — и он реально работает!
GenCAD умеет превращать чертежи в 3D‑модели и сразу генерирует параметрический CAD‑код. Для сложных и детализированных объектов он пока не подойдет, но с простыми деталями вроде винтиков и креплений справляется отлично.
📎 Идеально для быстрого прототипирования стандартных элементов.
📄 Статья: https://openreview.net/pdf?id=e817c1wEZ6
🔗 Сайт: https://gencad.github.io
💻 Код: https://github.com/ferdous-alam/GenCAD
@pythonl - погружение в Python
GenCAD умеет превращать чертежи в 3D‑модели и сразу генерирует параметрический CAD‑код. Для сложных и детализированных объектов он пока не подойдет, но с простыми деталями вроде винтиков и креплений справляется отлично.
📎 Идеально для быстрого прототипирования стандартных элементов.
📄 Статья: https://openreview.net/pdf?id=e817c1wEZ6
🔗 Сайт: https://gencad.github.io
💻 Код: https://github.com/ferdous-alam/GenCAD
@pythonl - погружение в Python
❤19🔥6👍3