Data Science | Machinelearning [ru]
20.1K subscribers
649 photos
40 videos
29 files
3.53K links
Все о Data Science, машинном обучении и искусственном интеллекте: от базовой теории до cutting-edge исследований и LLM.

По вопросам рекламы или разработки - @g_abashkin

РКН: https://vk.cc/cJPGXD
Download Telegram
​​Модуль cmath
#python
Модуль cmath – предоставляет функции для работы с комплексными числами.
cmath.phase(x) - возвращает фазу комплексного числа (её ещё называют аргументом). Эквивалентно math.atan2(x.imag, x.real). Результат лежит в промежутке [-π, π].
Получить модуль комплексного числа можно с помощью встроенной функции abs().
cmath.polar(x) - преобразование к полярным координатам. Возвращает пару (r, phi).
cmath.rect(r, phi) - преобразование из полярных координат.
cmath.exp(x) - ex.
cmath.log(x[, base]) - логарифм x по основанию base. Если base не указан, возвращается натуральный логарифм.
cmath.log10(x) - десятичный логарифм.
cmath.sqrt(x) - квадратный корень из x.
cmath.acos(x) - арккосинус x.
cmath.asin(x) - арксинус x.
cmath.atan(x) - арктангенс x.
cmath.cos(x) - косинус x.
cmath.sin(x) - синус x.
cmath.tan(x) - тангенс x.
cmath.acosh(x) - гиперболический арккосинус x.
cmath.asinh(x) - гиперболический арксинус x.
cmath.atanh(x) - гиперболический арктангенс x.
cmath.cosh(x) - гиперболический косинус x.
cmath.sinh(x) - гиперболический синус x.
cmath.tanh(x) - гиперболический тангенс x.
cmath.isfinite(x) - True, если действительная и мнимая части конечны.
cmath.isinf(x) - True, если либо действительная, либо мнимая часть бесконечна.
cmath.isnan(x) - True, если либо действительная, либо мнимая часть NaN.
cmath.pi - π.
cmath.e - e.
Модуль glob
#python

Модуль glob находит все пути, совпадающие с заданным шаблоном в соответствии с правилами, используемыми оболочкой Unix. Обрабатываются символы "*" (произвольное количество символов), "?" (один символ), и диапазоны символов с помощью []. Для использования тильды "~" и переменных окружения необходимо использовать os.path.expanduser() и os.path.expandvars().
Модуль copy - поверхностное и глубокое копирование объектов
#python
Операция присваивания не копирует объект, он лишь создаёт ссылку на объект. Для изменяемых коллекций, или для коллекций, содержащих изменяемые элементы, часто необходима такая копия, чтобы её можно было изменить, не изменяя оригинал. Данный модуль предоставляет общие (поверхностная и глубокая) операции копирования.
copy.copy(x) - возвращает поверхностную копию x.
copy.deepcopy(x) - возвращает полную копию x.
Модуль functools
#python

Модуль functools - сборник функций высокого уровня: взаимодействующих с другими функциями или возвращающие другие функции.
Модуль functools определяет следующие функции:
functools.cmp_to_key(func) - превращает функцию сравнения в key-функцию. Используется с инструментами, принимающие key-функции (sorted(), min(), max(), heapq.nlargest(), heapq.nsmallest(), itertools.groupby()). Эта функция в основном используется в качестве переходного инструмента для программ, преобразованных из Python 2, которые поддерживали использование функций сравнения.
Модуль os.path
#Python
os.path является вложенным модулем в модуль os, и реализует некоторые полезные функции для работы с путями.
os.path.abspath(path) - возвращает нормализованный абсолютный путь.
os.path.basename(path) - базовое имя пути (эквивалентно os.path.split(path)[1]).
os.path.commonprefix(list) - возвращает самый длинный префикс всех путей в списке.
Модуль json
#Python

JSON (JavaScript Object Notation) - простой формат обмена данными, основанный на подмножестве синтаксиса JavaScript. Модуль json позволяет кодировать и декодировать данные в удобном формате.
Кодирование основных объектов Python:
Модуль os
#Python 

Модуль os предоставляет множество функций для работы с операционной системой, причём их поведение, как правило, не зависит от ОС, поэтому программы остаются переносимыми. Здесь будут приведены наиболее часто используемые из них.
Будьте внимательны: некоторые функции из этого модуля поддерживаются не всеми ОС.
Модуль pickle
#Python

Модуль pickle реализует мощный алгоритм сериализации и десериализации объектов Python. "Pickling" - процесс преобразования объекта Python в поток байтов, а "unpickling" - обратная операция, в результате которой поток байтов преобразуется обратно в Python-объект. Так как поток байтов легко можно записать в файл, модуль pickle широко применяется для сохранения и загрузки сложных объектов в Python.
Модуль datetime
#Python

Модуль datetime предоставляет классы для обработки времени и даты разными способами. Поддерживается и стандартный способ представления времени, однако больший упор сделан на простоту манипулирования датой, временем и их частями.
Модуль bisect
#Python

Модуль bisect - обеспечивает поддержку списка в отсортированном порядке с помощью алгоритма деления пополам.
Набор функций:
bisect.insort(list, elem), он же bisect.insort_right(list, elem) - вставка элемента в отсортированный список, при этом elem располагается как можно правее (все элементы, равные ему, остаются слева).
Модуль collections
#Python

Модуль collections - предоставляет специализированные типы данных, на основе словарей, кортежей, множеств, списков.
Первым рассматриваемым типом данных будет Counter.
collections.Counter
collections.Counter - вид словаря, который позволяет нам считать количество неизменяемых объектов (в большинстве случаев, строк). Пример:
Модуль array. Массивы в python
#Python

Модуль array определяет массивы в python. Массивы очень похожи на списки, но с ограничением на тип данных и размер каждого элемента.
Размер и тип элемента в массиве определяется при его создании и может принимать следующие значения:
Модуль itertools
#Python

Модуль itertools - сборник полезных итераторов.
itertools.count(start=0, step=1) - бесконечная арифметическая прогрессия с первым членом start и шагом step.
itertools.cycle(iterable) - возвращает по одному значению из последовательности, повторенной бесконечное число раз.
itertools.repeat(elem, n=Inf) - повторяет elem n раз.
itertools.accumulate(iterable) - аккумулирует суммы.
accumulate([1,2,3,4,5]) --> 1 3 6 10 15
Модуль random
#Python

Модуль random предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности.
random.seed([X], version=2) - инициализация генератора случайных чисел. Если X не указан, используется системное время.
random.getstate() - внутреннее состояние генератора.
random.setstate(state) - восстанавливает внутреннее состояние генератора. Параметр state должен быть получен функцией getstate().
random.getrandbits(N) - возвращает N случайных бит.
random.randrange(start, stop, step) - возвращает случайно выбранное число из последовательности.
Модуль math
#Python

Модуль math – один из наиважнейших в Python. Этот модуль предоставляет обширный функционал для работы с числами.
Python | Создайте таблицу меток с помощью Tkinter
#Python

Python предлагает несколько вариантов разработки графического интерфейса пользователя. Из всех методов графического интерфейса tkinter является наиболее часто используемым методом. Это стандартный интерфейс Python для инструментария Tk GUI, поставляемый с Python. Python с tkinter выводит самый быстрый и простой способ создания приложений с графическим интерфейсом. Создание графического интерфейса с помощью tkinter — простая задача.
Чтобы создать ткинтер:
Импорт модуля — ткинтер
Создать главное окно (контейнер)
Добавить любое количество виджетов в главное окно
Примените триггер события к виджетам.
Python | Вычтите два элемента списка, если элемент в первом списке больше
#Python

Если даны два списка, если элемент в первом списке больше, чем элемент во втором списке, то вычтите его, иначе верните только элемент первого списка.

Примеры:
Input:
l1 = [10, 20, 30, 40, 50, 60]
l2 = [60, 50, 40, 30, 20, 10]
Output:
[10, 20, 30, 10, 30, 50]
Взаимодействовать с файлами в Python
#Python

Python также поддерживает обработку файлов и позволяет пользователям обрабатывать файлы, читать, писать, создавать, удалять и перемещать файлы, а также многие другие параметры обработки файлов для работы с файлами. Концепция обработки файлов простиралась на различные другие языки, но реализация сложна или длительна, но, как и другие концепции Python, эта концепция здесь также проста и коротка.
Использование функции enumerate()
#Python
Функция enumerate() добавляет счетчик в итерируемый объект, в котором используется метод iter , возвращающий итератор. Он может принимать последовательные значения индекса, начиная с нуля. И выдаёт ошибку IndexError, когда индексы больше недействительны.

Типичный пример использования функции enumerate() — создание цикла по списку с отслеживанием индекса. Для этого можно использовать переменную в качестве счетчика. Но функция enumerate() позволяет сделать то же самое намного удобнее.

# First prepare a list of strings
subjects = ('Python', 'Coding', 'Tips')
for i, subject in enumerate(subjects):
 print(i, subject)

# Output:
0 Python
1 Coding 
2 Tips
Функции, поддерживающие только именованные аргументы (kwargs)
#Python
Для того чтобы при использовании некоей функции сделать так, чтобы ей можно было бы передавать только именованные аргументы, можно поступить следующим образом:

def test(*, a, b):
 pass

test("value for a", "value for b") # TypeError: test() takes 0 positional arguments...
test(a="value", b="value 2") # А так - работает...

Это может быть полезно для того, чтобы улучшить понятность кода. Как видите, наша задача легко решается при помощи использования аргумента * перед списком именованных аргументов. Здесь, что вполне очевидно, можно использовать и позиционные аргументы — в том случае, если поместить их до аргумента *.
Создание объектов, поддерживающих выражение with
#Python

Все знают о том, как, например, открыть файл, или, возможно, как установить блокировку с использованием оператора with. Но можно ли самостоятельно реализовать механизм управления блокировками? Да, это вполне реально. Протокол управления контекстом исполнения реализуется с использованием методов enter и exit:

class Connection:
 def __init__(self):
 ...

 def __enter__(self):
 # Инициализируем соединение...

 def __exit__(self, type, value, traceback):
 # Закрываем соединение...

with Connection() as c:
 # __enter__() executes
 ...
 # conn.__exit__() executes

Это — наиболее распространённый способ реализации возможностей менеджера контекста в Python, но то же самое можно сделать и проще:

from contextlib import contextmanager

@contextmanager
def tag(name):
 print(f"<{name}>")
 yield
 print(f"</{name}>")

with tag("h1"):
 print("This is Title.")

Здесь протокол управления контекстом реализован с использованием декоратора contextmanager. Первая часть функции tag (до yield) выполняется при входе в блок with. Затем выполняется сам этот блок, а после этого выполняется оставшаяся часть функции tag.