Класс Counter.deque()
При использовании класс deque из модуля collections мы работаем с очередью. Он позволяет добавлять и удалять элементы с обоих концов очереди.
В этом примере мы создаем объект deque, содержащий список фруктов. Затем мы добавляем элемент 'pear' в конец очереди с помощью метода append() и элемент 'grape' в начало очереди с помощью метода appendleft(). Конечный результат - очередь, содержащая фрукты в порядке 'grape', 'apple', 'banana', 'orange', 'pear'.
#theory // Just Python
При использовании класс deque из модуля collections мы работаем с очередью. Он позволяет добавлять и удалять элементы с обоих концов очереди.
В этом примере мы создаем объект deque, содержащий список фруктов. Затем мы добавляем элемент 'pear' в конец очереди с помощью метода append() и элемент 'grape' в начало очереди с помощью метода appendleft(). Конечный результат - очередь, содержащая фрукты в порядке 'grape', 'apple', 'banana', 'orange', 'pear'.
#theory // Just Python
itertools.batched
#theory // Just Python
itertools.batched
разбивает итерируемый объект на фиксированные группы. Это полезно для пакетной обработки данных, группировки и работы с потоками данных.#theory // Just Python
Антипаттерн недели: Использование переменных с плавающим значением в качестве условий
В Python числа с плавающей точкой (
Избегайте прямого сравнения
#theory // Just Python
В Python числа с плавающей точкой (
float
) могут вести себя неожиданно из-за погрешности вычислений. Это особенно критично при сравнении и использовании их в логических выражениях.Избегайте прямого сравнения
float
— используйте округление или math.isclose()
.#theory // Just Python
Генераторные выражения в Python
Для создания генераторов на скорую руку можно использовать выражения (как и для генераторов списка).
#theory // Just Python
Для создания генераторов на скорую руку можно использовать выражения (как и для генераторов списка).
#theory // Just Python
str.removeprefix
str.removeprefix удаляет указанный префикс из строки, если он присутствует. Это полезно для очистки и нормализации данных без лишних условий и срезов.
#theory // Just Python
str.removeprefix удаляет указанный префикс из строки, если он присутствует. Это полезно для очистки и нормализации данных без лишних условий и срезов.
#theory // Just Python
SDV - библиотека, разработанная учеными MIT, использующая алгоритмы машинного обучения для генерации различного рода таблиц при помощи анализа реальных данных и создания на их основе синтетических данных в Python.
Либа позволяет создать единичные таблицы, соединенные мульти-таблицы и секвентальные таблицы.
Пример кода:
В результате генерирует такую таблицу.
Ставится командой
Документация и примеры кода на Github
#theory // Just Python
Либа позволяет создать единичные таблицы, соединенные мульти-таблицы и секвентальные таблицы.
Пример кода:
from sdv.datasets.demo import download_demo
real_data, metadata = download_demo(
modality='single_table',
dataset_name='fake_hotel_guests')
В результате генерирует такую таблицу.
Ставится командой
pip install sdv
Документация и примеры кода на Github
#theory // Just Python
Пример кода с использованием glob
Модуль glob находит все пути, совпадающие с заданным шаблоном в соответствии с правилами, используемыми оболочкой Unix. Обрабатываются символы "*" (произвольное количество символов), "?" (один символ), и диапазоны символов с помощью []. Для использования тильды "~" и переменных окружения необходимо использовать os.path.expanduser() и os.path.expandvars().
#theory // Just Python
Модуль glob находит все пути, совпадающие с заданным шаблоном в соответствии с правилами, используемыми оболочкой Unix. Обрабатываются символы "*" (произвольное количество символов), "?" (один символ), и диапазоны символов с помощью []. Для использования тильды "~" и переменных окружения необходимо использовать os.path.expanduser() и os.path.expandvars().
#theory // Just Python
Ускорение компиляции с помощью numba
Если определённая часть твоего кода всё ещё работает медленно, попробуй библиотеку numba, чтобы компилировать код. numba ускоряет выполнение в 10-20 раз, так как компилирует код в машинные инструкции.
#theory // Just Python
Если определённая часть твоего кода всё ещё работает медленно, попробуй библиотеку numba, чтобы компилировать код. numba ускоряет выполнение в 10-20 раз, так как компилирует код в машинные инструкции.
#theory // Just Python
Pandas: Удаление дубликатов
#theory // Just Python
pandas.dropduplicates()
— метод в библиотеке pandas
, который используется для удаления дубликатов строк из DataFrame
. С помощью duplicated
ты можешь проверить, имеются ли дубликаты.#theory // Just Python
dict.setdefault
#theory // Just Python
dict.setdefault
возвращает значение по ключу, если он существует, или добавляет ключ со значением по умолчанию. Это полезно для группировки, счётчиков и инициализации вложенных структур.#theory // Just Python
Как объединить строки без цикла?
Когда нужно склеить несколько строк из списка в одну, новички часто используют цикл for и оператор +. Но в Python есть более быстрый и лаконичный способ — метод
Метод
Итог:
Работает быстро и читаемо.
Подходит для любых итерируемых объектов со строками.
#theory // Just Python
Когда нужно склеить несколько строк из списка в одну, новички часто используют цикл for и оператор +. Но в Python есть более быстрый и лаконичный способ — метод
.join()
.Метод
join()
принимает список строк и объединяет их через указанный разделитель. Это работает гораздо эффективнее циклов и особенно полезно при работе с большими объёмами текста. Итог:
.join()
— лучший способ объединения строк.Работает быстро и читаемо.
Подходит для любых итерируемых объектов со строками.
#theory // Just Python
enumerate и как он работает
#theory // Just Python
enumerate
добавляет индексы к элементам итерируемого объекта. Это полезно для одновременного доступа к элементу и его позиции в цикле.#theory // Just Python
Как быстро получить уникальные значения из списка?
Когда нужно найти все уникальные элементы в списке, новички часто перебирают элементы вручную и добавляют их в новый список. Но Python предлагает простое и эффективное решение — использовать
Множество (
Итог:
Отлично подходит для быстрой фильтрации!
#theory // Just Python
Когда нужно найти все уникальные элементы в списке, новички часто перебирают элементы вручную и добавляют их в новый список. Но Python предлагает простое и эффективное решение — использовать
set
.Множество (
set
) автоматически удаляет все повторяющиеся значения. А если нужно сохранить порядок, можно дополнительно применить dict.fromkeys().
Всё это делается буквально в одну строку! Итог:
set()
— простой способ убрать дубликаты.dict.fromkeys()
сохраняет порядок элементов.Отлично подходит для быстрой фильтрации!
#theory // Just Python
MQL — переводит запрос, описанный обычными словами в код на SQL при помощи нейросетей.
То есть пишешь ему, например:
И он вам выдаёт
#theory // Just Python
То есть пишешь ему, например:
все книги которые взяли студенты 2 курса за последнюю неделю
И он вам выдаёт
SELECT * FROM ...
и тд.#theory // Just Python
Как быстро проверить, является ли строка числом?
При обработке пользовательского ввода важно понимать, содержит ли строка число. Новички могут пытаться использовать
Метод
Итог
Полезен при валидации ввода.
Работает только для положительных целых чисел.
#theory // Just Python
При обработке пользовательского ввода важно понимать, содержит ли строка число. Новички могут пытаться использовать
try-except
или проверять вручную, но есть более элегантное решение — метод .isdigit()
.Метод
.isdigit()
возвращает True
, если строка состоит только из цифр. Это удобно, когда нужно, например, убедиться, что пользователь ввёл возраст или ID
. Итог
.isdigit()
— простой способ проверить, состоит ли строка только из цифр.Полезен при валидации ввода.
Работает только для положительных целых чисел.
#theory // Just Python
Colorama — библиотека, позволяющая работать с цветом вывода в консоль.
С её помощью можно выводить цветной текст, выставлять цвет фона, и даже смешивать эти режимы.
Colorama также может менять текст на жирный и на
Работает на всех операционках.
В том числе адекватно отображается в классической командной строке Windows.
Использовать очень просто.
Ставится командой
Документация и примеры кода здесь
Код из скриншота здесь
#theory // Just Python
С её помощью можно выводить цветной текст, выставлять цвет фона, и даже смешивать эти режимы.
Colorama также может менять текст на жирный и на
тусклый
. Всё это показано на скрине выше.Работает на всех операционках.
В том числе адекватно отображается в классической командной строке Windows.
Использовать очень просто.
Ставится командой
pip install colorama
Документация и примеры кода здесь
Код из скриншота здесь
#theory // Just Python
Метод re.sub
#theory // Just Python
re.sub
заменяет все вхождения шаблона в строке на указанное значение. Это полезно для очистки и нормализации текста.#theory // Just Python
Ridge и Lasso
Иногда простая линейная регрессия начинает чудить: переобучается, даёт нестабильные коэффициенты, особенно если в данных много признаков или они между собой похожи. Это называется мультиколлинеарность, и лечится оно регуляризацией — техникой, которая добавляет “штраф” за слишком сложную модель. В линейной регрессии это реализуется через Ridge (L2-регуляризация) и Lasso (L1-регуляризация).
Ridge-регрессия добавляет к ошибке сумму квадратов коэффициентов. В результате модель получает штраф за то, что “раздувает” веса. Чем больше alpha, тем сильнее сжимаются веса. Маленькое значение — почти обычная линейная регрессия, большое — всё приближается к нулям.
Lasso-регрессия штрафует за модули коэффициентов. То есть она не просто сжимает веса, а может вообще сделать некоторые из них равными нулю. Это превращает Lasso в инструмент для отбора признаков: она как бы говорит «этот признак не важен — выкину его сам».
#theory // Just Python
Иногда простая линейная регрессия начинает чудить: переобучается, даёт нестабильные коэффициенты, особенно если в данных много признаков или они между собой похожи. Это называется мультиколлинеарность, и лечится оно регуляризацией — техникой, которая добавляет “штраф” за слишком сложную модель. В линейной регрессии это реализуется через Ridge (L2-регуляризация) и Lasso (L1-регуляризация).
Ridge-регрессия добавляет к ошибке сумму квадратов коэффициентов. В результате модель получает штраф за то, что “раздувает” веса. Чем больше alpha, тем сильнее сжимаются веса. Маленькое значение — почти обычная линейная регрессия, большое — всё приближается к нулям.
Lasso-регрессия штрафует за модули коэффициентов. То есть она не просто сжимает веса, а может вообще сделать некоторые из них равными нулю. Это превращает Lasso в инструмент для отбора признаков: она как бы говорит «этот признак не важен — выкину его сам».
#theory // Just Python
Как удобно отформатировать строку с переменными?
Новички часто используют конкатенацию (+) для вставки переменных в строки. Это может быть неудобно и плохо читаемо. Вместо этого лучше использовать f-строки — современный и лаконичный способ форматирования строк в Python!
F-строки (или форматированные строки) позволяют вставлять переменные прямо внутрь строки с помощью фигурных скобок {}. Это и быстрее, и чище!
Итог:
F-строки — самый читаемый и удобный способ форматирования.
Позволяют вставлять выражения прямо в строку.
Работают с любой версией Python 3.6+.
#theory // Just Python
Новички часто используют конкатенацию (+) для вставки переменных в строки. Это может быть неудобно и плохо читаемо. Вместо этого лучше использовать f-строки — современный и лаконичный способ форматирования строк в Python!
F-строки (или форматированные строки) позволяют вставлять переменные прямо внутрь строки с помощью фигурных скобок {}. Это и быстрее, и чище!
Итог:
F-строки — самый читаемый и удобный способ форматирования.
Позволяют вставлять выражения прямо в строку.
Работают с любой версией Python 3.6+.
#theory // Just Python
any
#theory // Just Python
any
возвращает True
, если хотя бы один элемент итерируемого объекта является истинным. Это полезно для быстрых проверок условий в коллекциях.#theory // Just Python