Разъяснивший Python
7.09K subscribers
3.14K photos
43 videos
30 files
3.18K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
Метод опорных векторов (SVM): подходы, принцип работы и реализация с нуля на Python

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

Читать...

Разъяснивший Python
Вывод строки по отдельным символам

Иногда при работе со строками нам нужны отдельные буквы. В таких случаях мы можем использовать цикл for для перебора символов и их печати.

Разъяснивший Python
Работаем с итерируерыми объектами

Все мы начинали писать на Python примерно одинаково: создавали пустой список, запускали цикл for, проверяли условие через if и делали .append(). Это надежно, предсказуемо, но по мере роста кодовой базы такие конструкции начинают утомлять. В этой статье автор подробно разбирает встроенный инструментарий для работы с итерируемыми объектами.

Читать...

Разъяснивший Python
Когда типизация делает больно: как у нас появился статический анализатор

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

Читать...

Разъяснивший Python
Конвертируем данные и файлы в PDF

Делимся новым циклом видеоматериалов, посвященный работе с текстовыми документами. В первой части автор рассказывает, как конвертируются данные и файлы в PDF с помощью Python.

Смотреть...

Разъяснивший Python
Декораторы классов

В этом примере мы определяем декоратор add_hello, который добавляет вывод "Hello!" перед вызовом метода greet в классе MyClass. Мы применяем декоратор к методу greet с помощью @add_hello, и теперь при вызове obj.greet(), помимо обычного приветствия, будет также выведено "Hello!".

Разъяснивший Python
Пишем свой HEX-редактор

Делимся подробным гайдом по созданию собственного HEX-редактора. Ты не только напишешь редактор, но и разберешься во всех внутренностях проекта: от битового представления до цветовой подсветки.

Читать...

Разъяснивший Python
GIL в threading — это боль, которую многие просто принимают как данность

До Python 3.13 альтернатив не было: multiprocessing с оверхедом и морокой передачи данных, или asyncio, бесполезный при CPU-bound задачах. Реальные кейсы — обработка данных, парсинг, криптография — где threading кажется логичным, но GIL заставляет ядра простаивать, а однопоточный код обгоняет многопоточный.

Кейс из продакшна: пул потоков без прироста

Я написал пул потоков для обработки пакетов данных: каждый поток выполнял CPU-bound трансформацию. GIL не отпускался, прирост 0%. Переписал на multiprocessing — 3x, но память выросла в 4 раза. Типичная ошибка: думать, что threading даст параллелизм для чистых вычислений.

Free-threaded Python 3.13: сборка без GIL

В 3.13 появился флаг --disable-gil. Потоки наконец работают параллельно. На четырех ядрах прирост по CPU-bound задачам — 3-4x. Пример теста:

# threading с GIL (стандартная сборка)
import threading, time

def work():
for _ in range(10**7):
x = 1 + 1

threads = [threading.Thread(target=work) for _ in range(4)]
start = time.time()
for t in threads: t.start()
for t in threads: t.join()
print(f"С GIL: {time.time() - start:.2f}s")
# Вывод: ~2.5s (почти как последовательно)


# free-threaded (сборка без GIL)
# Тот же код — результат ~0.8s (на 4 ядрах)


Разъяснивший Python
This media is not supported in your browser
VIEW IN TELEGRAM
Нейросети уже заменяют носителей языка.

В Telegram быстро набирает популярность ИИ-девушка Chatty, с которой можно голосом практиковать живой разговорный английский и ещё 12 языков на основе новейших моделей искусственного интеллекта. Попробовать можно бесплатно.

🇬🇧 Английский: @ChattyTutorBot
🇩🇪 Немецкий: @ChattyGermanBot
🇪🇸 Испанский: @ChattySpanishBot
🇫🇷 Французский: @ChattyFrenchBot
🇮🇹 Итальянский: @ChattyItalianBot
🇵🇹 Португальский: @ChattyPortugueseBot
🇨🇳 Китайский: @ChattyChineseBot
🇯🇵 Японский: @ChattyJapaneseBot
🇰🇷 Корейский: @ChattyKoreanBot
🇸🇦 Арабский: @ChattyArabicBot
🇹🇷 Турецкий: @ChattyTurkishBot
🇷🇺 Русский: @ChattyRussianBot
🇵🇱 Польский: @ChattyPolandBot
JIT-компилятор Python в 300 строк

В области JIT-компиляции промышленным решением является проект Numba, спонсируемый такими технологическими гигантами как Intel, AMD и NVIDIA. Именно с этим пакетом автор и решил посоревноваться, написав миниатюрный JIT-компилятор программ на Питоне.

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

Читать...

Разъяснивший Python
Выявление проблем в log-файлах с помощью аналитики

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

Читать...

Разъяснивший Python
3 ошибки при работе с dataclasses

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

Читать...

Разъяснивший Python
Объяснение:

True == 1 и имеют одинаковый хэш. Поэтому это один и тот же ключ. Второе присваивание перезаписывает первое.

Разъяснивший Python
This media is not supported in your browser
VIEW IN TELEGRAM
Реализация функции потерь в Python

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

Читать...

Разъяснивший Python
Пишем на Python как на Rust

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

Читать...

Разъяснивший Python
Python с нуля: множества set и frozenset простым языком

В этом уроке Python с нуля разберём множества в Python: set и frozenset. Вы узнаете, что такое множества, чем они отличаются от списков и кортежей, как создавать set, удалять дубликаты, выполнять операции объединения, пересечения и разности, а также когда использовать frozenset.

Смотреть...

Разъяснивший Python
Линейная регрессия на стероидах

Обычная регрессия может плохо справляться с большим количеством сложных нелинейных зависимостей. В таких ситуациях лучше всего использовать DML (Double/Debiased Machine Learning). В данной статье ты узнаешь, что это такое.

Читать...

Разъяснивший Python