Python tricks | Хитрости Питона
5.67K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
3 простых шага для оптимизации гиперпараметров в любом Python-скрипте. Шаг 1

Возьмите параметры, которые хотите оптимизировать, и поместите их в словарь в начало скрипта. Это действие позволит вам эффективно отделить параметры поиска от остального кода.

🔗 Python tricks
3 простых шага для оптимизации гиперпараметров в любом Python-скрипте. Шаг 2

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

🔗 Python tricks
3 простых шага для оптимизации гиперпараметров в любом Python-скрипте. Шаг 3

Теперь мы используем train_evaluate в качестве цели в любой библиотеке оптимизации неизвестной функции («черного ящика»).

Я предпочитаю Scikit Optimize, но вы можете выбрать другую библиотеку.

🔗 Python tricks
Missingo

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

🔗 Python tricks
#Вопросы_с_собеседования
Вы реализуете функцию для анализа текста, которая должна возвращать слово, которое встречается в тексте наиболее часто, не учитывая регистр букв. Если два или более слов имеют одинаковую максимальную частоту, функция должна вернуть слово, которое встречается в тексте первым. Напишите эффективную функцию на Python для решения этой задачи.


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

🔗 Python tricks
Напишите регулярное выражение, которое будет принимать идентификатор электронной почты. Используйте модуль re.

Мы используем функцию re.match() для сравнения переданного идентификатора электронной почты с регулярным выражением. Если совпадение найдено, мы возвращаем True, иначе False. Например, вызов is_valid_email('example@mail.com') вернет True, а вызов is_valid_email('not_valid_email') вернет False.

🔗 Python tricks
Метод ljust()

Метод ljust() возвращает строку, выровненную по левому краю в пределах заданной минимальной ширины. Если определен fillchar, он также заполняет оставшееся пространство заданным символом.

🔗 Python tricks
Numerizer

Потрясающая библиотека для преобразования чисел из текстового формата в int (числовой) и float (с плавающей запятой). Полезная библиотека для NLP-проектов. Подробнее можно почитать в PyPi и Github репозитории.

🔗 Python tricks
Faker

Иногда возникают ситуации, когда для проведения анализа нам нужно сгенерировать тестовые данные или воспользоваться текстом-заполнителем. Библиотека Faker помогает решить эту проблему, быстро генерируя тестовые данные в нужный вам момент времени.

🔗 Python tricks
PySpark

PySpark — это Python API для Apache Spark. Он позволяет выполнять обработку больших данных в реальном времени в распределенной среде с помощью Python. Он также предоставляет оболочку PySpark для интерактивного анализа данных.

PySpark сочетает в себе удобство использования и простоту Python с мощностью Apache Spark, что позволяет обрабатывать и анализировать данные любого размера для всех, кто знаком с Python. PySpark поддерживает все функции Spark, такие как Spark SQL, DataFrames, Structured Streaming, Machine Learning (MLlib) и Spark Core.

Код с картинки создаст контекст Spark, прочитает набор данных из файла CSV с именем "data.csv" и выведет его в консоль.

🔗 Python tricks
Атрибут context

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

В коде на картинке функция g вызывает исключение ValueError. Функция f перехватывает это исключение и вызывает собственное исключение Exception.

🔗 Python tricks
EMOT

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

🔗 Python tricks
Операторы Объединения: Самый Элегантный Способ Объединения словарей Python (ч.1)

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

Например, как мы могли объединить следующие три словаря до Python 3.9?

Одним из методов является использование циклов for.

🔗 Python tricks
Модуль doctest

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

Как использовать doctest?

Чтобы использовать doctest, необходимо импортировать его в свой код:

import doctest


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

Чтобы запустить тесты doctest, вы можете использовать функцию doctest.testmod(). Если тесты пройдут успешно, ничего не будет напечатано. Если тесты потерпят неудачу, будет напечатано сообщение об ошибке, указывающее на причину неудачи.

🔗 Python tricks
CatBoost

CatBoost — это библиотека градиентного бустинга на деревьях решений, разработанная Яндексом. Она использует небрежные (oblivious) деревья решений, чтобы вырастить сбалансированное дерево. Одни и те же функции используются для создания левых и правых разделений (split) на каждом уровне дерева.

Чтобы установить CatBoost в Python, выполните следующие действия:

pip install catboost


Затем импортируйте библиотеку:

import catboost


🔗 Python tricks
Операторы Объединения: Самый Элегантный Способ Объединения словарей Python (ч.2)

В Python 3.9 были введены операторы объединения, которые сделали задачи объединения очень простыми

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

🔗 Python tricks
tuple.count

Метод count() позволяет узнать, сколько раз указанный элемент появляется в кортеже. В приведенном примере мы использовали метод count() для подсчета количества раз, когда элементы 1 и 7 появляются в кортеже. Здесь кортеж чисел (1,3,4,1,6,1) содержит три единицы и не содержит числа 7. Следовательно, результатом будет 3 и 0.

🔗 Python tricks
Работа с регистрами

Строки в Python имеют свойство регистра — прописные и строчные буквы считаются разными символами.

Для преобразования регистра используются методы строк:
str.upper() — преобразует строку к верхнему регистру.
str.lower() — преобразует строку к нижнему регистру.
str.swapcase() — меняет регистр каждого символа на противоположный.
str.capitalize() — делает первую букву заглавной, остальные строчными.

Регистр конкретного символа можно проверить в строке методами:
str.isupper() — проверка на заглавный регистр.
str.islower() — проверка на строчный регистр.

Регистр важно учитывать при сравнении строк на равенство.

🔗 Python tricks
Можно ли объявлять функцию внутри другой функции? Где она будет видна?

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

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

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


🔗 Python tricks
Класс Process

Process — это класс для создания и управления отдельными процессами из модуля multiprocessing.
Создание процесса выполняется конструктором Process, передавая целевую функцию и аргументы.

При создании процессов нужно учитывать:
— Ограничения на доступ к данным между процессами.
— Синхронизацию процессов при необходимости.

🔗 Python tricks