Разъяснивший Python – Telegram
Разъяснивший Python
7.68K subscribers
2.8K photos
40 videos
30 files
2.69K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

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

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
PyForest: Один импорт для всех важных модулей

Импортируйте все ключевые библиотеки Python одной строкой. Это удобно для всех ваших проектов по Data Science и при создании нового окружения в Conda.

При работе с данными вы используете библиотеки, такие как pandas, matplotlib, seaborn, numpy и sklearn. Прежде чем приступить к работе, нужно их импортировать.

Библиотека решает несколько проблем
:

• Однообразие: импорт всегда одинаковый и скучный.
• Пропущенные импорты мешают работе.
• Иногда нужно искать точные строки импорта, например, import matplotlib.pyplot as plt или from sklearn.ensemble import GradientBoostingRegressor.

Ссылочка на доку

Разъяснивший Python | ChatGPT
Генераторные выражения

Попробуем использовать генераторные выражения (для получения среза будем использовать функцию islice из itertools, которая возвращает итератор по срезу)

Итог: увеличение производительности более чем в 3 раза.

Разъяснивший Python | ChatGPT
👍1😱1
math.erfc

Функция math.erfc используется в тех же областях, что и math.erf, но применяется чаще для вычислений вероятностей, связанных с нормальным распределением. Например, в статистике и теории вероятностей для вычисления вероятности того, что случайная величина из нормального распределения примет значение за пределами заданного диапазона.

Разъяснивший Python | ChatGPT
🤷‍♂1
Autoviz: Автоматическая визуализация любого набора данных одной командой

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

Для визуализации данных в Python часто используют Matplotlib, Seaborn, Plotly и другие. Но перед использованием этих библиотек нужно определить тип графика и аргументы. AutoViz решает эту проблему, быстро предоставляя нужную информацию.

Ссылочка на доку

Разъяснивший Python | ChatGPT
👍2👎1
Списковые включения

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

Например у нас есть большой список словарей (объявления контекстной рекламы). Зададим начальное время выборки и конечное.

И попробуем выбрать все объявления, ставка которых выше 600 и дата попадает в выбранный интервал. Затем возьмем первые 1000 элементов полученного списка.

Как видим этот метод работает быстрее.

Разъяснивший Python | ChatGPT
math.log

Функция math.log используется для вычисления натурального логарифма числа x или логарифма x по указанному основанию base. Если base не указан, то по умолчанию используется основание e (число Эйлера, примерно 2.718).

Разъяснивший Python | ChatGPT
Однострочный условный оператор (тернарный оператор)

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

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

Разъяснивший Python | ChatGPT
Сравнение быстродействия def и lambda-функций Python. Производные функции

А производная для функции построения графика — это же самая функция с определенными аргументами.

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

Вернёмся к первому. В случае проверки скорости создания функции, функция_для_замера() будет иметь одну цель — создать внутри себя def или lambda функцию. Её мы будем вызывать множество раз, и каждый раз она будет создавать одну и ту же функцию заново.

Разъяснивший Python | ChatGPT
Оптимизация памяти в Python: Использование генераторов вместо списков

Когда мы работаем с большими наборами данных, важно помнить об эффективном использовании памяти. Одной из полезных фишек Python для оптимизации памяти является использование генераторов вместо списков.

Пример кода

Допустим, у нас есть задача найти квадраты чисел от 1 до 1 000 000. Сначала посмотрим, как это сделать с помощью списка:

# Плохая практика: использование списка
squares = [x**2 for x in range(1, 1000001)]


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

# Лучшая практика: использование генератора
squares = (x**2 for x in range(1, 1000001))


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

Разъяснивший Python | ChatGPT
👍1
Использование enumerate для нумерации элементов в цикле

Функция enumerate в Python — это удобный способ получать одновременно индекс и значение элемента при итерации по последовательности. Она особенно полезна для тех, кто часто работает с циклами и списками, и позволяет сделать код более чистым и читабельным.

Использование enumerate упрощает обработку последовательностей, делая код более лаконичным и легким для понимания.

Разъяснивший Python | ChatGPT
Конкатенация строк

Если нужно конкатенировать список строк, сделать это можно в цикле for, по одной добавляя строки к итоговому результату.

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


Более эффективный подход к решению этой задачи заключается в использовании функции join():

characters = ['p', 'y', 't', 'h', 'o', 'n']
word = "".join(characters)
print(word) # python


Разъяснивший Python | ChatGPT
👍2
Переселения

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

Разъяснивший Python | ChatGPT
math.log

Функция math.log используется для вычисления натурального логарифма числа x или логарифма x по указанному основанию base. Если base не указан, то по умолчанию используется основание e (число Эйлера, примерно 2.718).

Разъяснивший Python | ChatGPT
👍1
Использование Counter из модуля collections для подсчета элементов

Модуль collections в Python включает в себя класс Counter, который предоставляет удобный способ подсчета элементов в итерируемых объектах. Это позволяет значительно упростить код, когда нужно подсчитать количество вхождений элементов в списке или другом итерируемом объекте.

Использование Counter из модуля collections позволяет упростить код и повысить его читаемость при решении задач подсчета элементов в итерируемых объектах.

Разъяснивший Python | ChatGPT
Использование zip для параллельной итерации

Функция zip в Python позволяет одновременно итерировать по нескольким итерируемым объектам (например, спискам), объединяя соответствующие элементы в кортежи. Это особенно полезно, когда нужно обрабатывать несколько последовательностей данных одновременно.

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

Разъяснивший Python | ChatGPT
clean-text для нормализации и очистки текста

Отличный однострочный код для нормализации и очистки текста — идеально для проектов по обработке естественного языка.

Контент, созданный пользователями в Интернете и в социальных сетях, часто бывает грязным. Предварительно обработайте свои данные с помощью clean-text, чтобы создать нормализованное текстовое представление. Например, преобразуйте этот испорченный ввод:

A bunch of \\u2018new\\u2019 references, including [Moana](https://en.wikipedia.org/wiki/Moana_%282016_film%29).
»Yóù àré rïght <3!«


в этот чистый вывод:

A bunch of 'new' references, including [moana](<URL>).
"you are right <3!


Разъяснивший Python | ChatGPT
👍1
Использование метода __int__(self)

Метод int(self) в Python позволяет определить пользовательское преобразование объекта в целое число. Этот метод полезен для пользовательских классов, которые хотят определить способ преобразования своих данных в целочисленный формат.

Метод int является специальным методом, который вызывается при использовании встроенной функции int() для объекта. Он должен возвращать целое число, представляющее объект.

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

Разъяснивший Python | ChatGPT
👍1
statistics.mode

Функция statistics.mode из модуля statistics используется для вычисления моды последовательности чисел. Мода — это значение, которое наиболее часто встречается в последовательности. Функция statistics.mode работает только с числовыми и хешируемыми типами данных (например, строками). Если несколько значений встречаются одинаковое количество раз и чаще других, функция вернет первое встречающееся значение. Если в последовательности нет явно выраженной моды (т.е. все значения встречаются одинаковое количество раз), функция statistics.mode вызовет исключение StatisticsError.

Разъяснивший Python | ChatGPT
Использование itertools.groupby для группировки данных

Модуль itertools в Python предоставляет полезную функцию groupby, которая позволяет группировать последовательные элементы итерируемого объекта на основе заданного ключа. Это особенно полезно для обработки и анализа данных, когда нужно сгруппировать элементы по какому-либо критерию.

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

Разъяснивший Python | ChatGPT
Использование f-строк для форматирования строк

Форматирование строк — это распространённая задача в программировании, и Python предоставляет несколько способов сделать это. Один из самых удобных и читаемых — это использование f-строк (f-strings), которые появились в Python 3.6. f-строки позволяют встраивать выражения внутри строк, делая форматирование более простым и понятным.

Использование f-строк позволяет делать форматирование строк более интуитивным и сокращает вероятность ошибок, связанных с более старыми методами форматирования (например, с использованием оператора % или метода str.format())

Разъяснивший Python | ChatGPT
random.shuffle

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

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