PyBrain
PyBrain — это модульная библиотека машинного обучения для Python.
Ее цель — предложить гибкие, простые в использовании, но все же мощные алгоритмы для задач машинного обучения и разнообразные предопределенные среды для тестирования и сравнения ваших алгоритмов.
В этом примере мы создаем набор данных для классификации с двумя входными и тремя выходными значениями и добавляем данные в набор данных. Затем данные разделяются на обучающую и тестовую выборки и преобразуются для использования с PyBrain.
Далее создается нейронная сеть с двумя входными узлами, тремя скрытыми узлами и тремя выходными узлами и тренер для обучения сети. Сеть обучается в течение 100 эпох и выводится результат на обучающей и тестовой выборках.
👉
PyBrain — это модульная библиотека машинного обучения для Python.
Ее цель — предложить гибкие, простые в использовании, но все же мощные алгоритмы для задач машинного обучения и разнообразные предопределенные среды для тестирования и сравнения ваших алгоритмов.
В этом примере мы создаем набор данных для классификации с двумя входными и тремя выходными значениями и добавляем данные в набор данных. Затем данные разделяются на обучающую и тестовую выборки и преобразуются для использования с PyBrain.
Далее создается нейронная сеть с двумя входными узлами, тремя скрытыми узлами и тремя выходными узлами и тренер для обучения сети. Сеть обучается в течение 100 эпох и выводится результат на обучающей и тестовой выборках.
👉
Dataclass
Это декоратор, представленный в Python 3.7, который позволяет автоматически создавать методы класса для реализации структур данных. Это значительно упрощает написание классов, которые используются только для хранения данных.
Преимущества
1. Автоматически создает методы
2. Уменьшает количество шаблонного кода, что делает код более читабельным и легко поддерживаемым.
3. Позволяет указывать типы данных для атрибутов и методов класса, что упрощает отладку кода и уменьшает вероятность появления ошибок.
4. Поддерживает наследование, что позволяет создавать более сложные структуры данных.
👉
Это декоратор, представленный в Python 3.7, который позволяет автоматически создавать методы класса для реализации структур данных. Это значительно упрощает написание классов, которые используются только для хранения данных.
Преимущества
dataclass перед обычными классами1. Автоматически создает методы
__init__, __repr__, __eq__ и другие методы, которые обычно приходится писать вручную.2. Уменьшает количество шаблонного кода, что делает код более читабельным и легко поддерживаемым.
3. Позволяет указывать типы данных для атрибутов и методов класса, что упрощает отладку кода и уменьшает вероятность появления ошибок.
4. Поддерживает наследование, что позволяет создавать более сложные структуры данных.
👉
Моржовый оператор (Walrus Operator)
Моржовый оператор (Walrus operator) — это оператор
Синтаксис выглядит так: имя_переменной
Переменная доступна в остальной части выражения после оператора.
Это удобно при работе с выражениями со сложными вложенными операциями. Позволяет избежать повторного вычисления.
👉
Моржовый оператор (Walrus operator) — это оператор
:=, введенный в версии 3.8. Он позволяет одновременно присвоить значение переменной и вернуть его.Синтаксис выглядит так: имя_переменной
:= выражение. Справа вычисляется выражение и присваивается переменной слеваПеременная доступна в остальной части выражения после оператора.
Это удобно при работе с выражениями со сложными вложенными операциями. Позволяет избежать повторного вычисления.
👉
Библиотека cvxpy
cvxpy — эта библиотека позволяет описывать оптимизационные задачи в высокоуровневом виде и эффективно решать их с помощью численных методов.
Основные возможности cvxpy:
— Удобный синтаксис для задания целевой функции и ограничений в виде выражений Python.
— Поддержка разных типов переменных: вещественных, целочисленных, булевых.
— Возможность задания неравенств и равенств как ограничений.
— Встроенные функции для задания норм, статистических величин и других полезных выражений.
— Автоматический выбор подходящего численного решателя на основе задачи.
— Интеграция с NumPy, SciPy и другими популярными библиотеками.
cvxyp часто используется для решения задач оптимизации в машинном обучении, обработке сигналов, финансовом моделировании и других областях.
👉
cvxpy — эта библиотека позволяет описывать оптимизационные задачи в высокоуровневом виде и эффективно решать их с помощью численных методов.
Основные возможности cvxpy:
— Удобный синтаксис для задания целевой функции и ограничений в виде выражений Python.
— Поддержка разных типов переменных: вещественных, целочисленных, булевых.
— Возможность задания неравенств и равенств как ограничений.
— Встроенные функции для задания норм, статистических величин и других полезных выражений.
— Автоматический выбор подходящего численного решателя на основе задачи.
— Интеграция с NumPy, SciPy и другими популярными библиотеками.
cvxyp часто используется для решения задач оптимизации в машинном обучении, обработке сигналов, финансовом моделировании и других областях.
👉
super()
super() — это встроенная функция, которая используется для вызова родительского класса. Она позволяет вызывать методы родительского класса из дочернего класса.
Это полезно при наследовании, чтобы использовать функционал базового класса.
Вызов
Функция принимает аргументы
Она часто используется в методах
Использование
👉
super() — это встроенная функция, которая используется для вызова родительского класса. Она позволяет вызывать методы родительского класса из дочернего класса.
Это полезно при наследовании, чтобы использовать функционал базового класса.
Вызов
super() ищет следующий класс в цепочке наследования и вызывает этот метод.Функция принимает аргументы
self и cls для связывания с текущим объектом и классом.Она часто используется в методах
init дочерних классов, чтобы вызвать init родителя и инициализировать его.Использование
super() позволяет избежать неявного упоминания имени базового класса в коде.👉
Дана входная строка s, необходимо изменить порядок слов в строке на противоположный
Слово определяется как последовательность символов, не содержащих пробелов. Слова в s будут разделены как минимум одним пробелом.
Вернуть строку, состоящую из слов в обратном порядке, объединенных одним пробелом.
*s может содержать начальные или конечные пробелы, а также несколько пробелов между двумя словами. Возвращаемая строка должна содержать только один пробел, разделяющий слова.
Чтобы решить данную задачу нам необходимо:
— Удалить начальные и конечные пробелы, а также уменьшить количество пробелов между словами до одного.
— Разбить строку на отдельные слова и сохранить в списке.
— Поменять порядок слов в списке на обратный с помощью метода
— Объединить слова в строку, разделенную одним пробелом, и вернуть результат.
👉
Слово определяется как последовательность символов, не содержащих пробелов. Слова в s будут разделены как минимум одним пробелом.
Вернуть строку, состоящую из слов в обратном порядке, объединенных одним пробелом.
*s может содержать начальные или конечные пробелы, а также несколько пробелов между двумя словами. Возвращаемая строка должна содержать только один пробел, разделяющий слова.
Чтобы решить данную задачу нам необходимо:
— Удалить начальные и конечные пробелы, а также уменьшить количество пробелов между словами до одного.
— Разбить строку на отдельные слова и сохранить в списке.
— Поменять порядок слов в списке на обратный с помощью метода
reverse().— Объединить слова в строку, разделенную одним пробелом, и вернуть результат.
👉
Faker — полезная библиотека для генерации фиктивных данных. Поддерживает не только английский язык. Для русского нужно прописать
Перед работой не забудьте сделать
https://faker.readthedocs.io/en/master/
👉
fake = Faker(«ru_Ru»)Перед работой не забудьте сделать
pip install Fakerhttps://faker.readthedocs.io/en/master/
👉
Библиотека EasyOCR для распознавания текста на картинках
Поддерживает 80+ языков. Выдаёт результат в виде списка, каждый элемент которого представляет собой координаты ограничивающей рамки, обнаруженный текст и уровень уверенности модели.
Установка через
https://github.com/JaidedAI/EasyOCR
👉
Поддерживает 80+ языков. Выдаёт результат в виде списка, каждый элемент которого представляет собой координаты ограничивающей рамки, обнаруженный текст и уровень уверенности модели.
Установка через
pip install easyocr
https://github.com/JaidedAI/EasyOCR
👉
Float или Decimal: в чём различия и что лучше использовать?
И тот, и другой предназначены для работы с дробными числами, но есть нюанс. Float использует некоторое приближение при работе с числами с плавающей точкой, поэтому может вносить ошибки округления. То есть Float эффективный и быстрый, но не очень точный.
Эта особенность может мешать в некоторых случаях, например, при работе с деньгами. Ошибки округления могут привести к значительным потерям, если обрабатывается большое количество транзакций. Тогда лучше использовать Decimal. Его нужно импортировать —
👉
И тот, и другой предназначены для работы с дробными числами, но есть нюанс. Float использует некоторое приближение при работе с числами с плавающей точкой, поэтому может вносить ошибки округления. То есть Float эффективный и быстрый, но не очень точный.
Эта особенность может мешать в некоторых случаях, например, при работе с деньгами. Ошибки округления могут привести к значительным потерям, если обрабатывается большое количество транзакций. Тогда лучше использовать Decimal. Его нужно импортировать —
from decimal import Decimal. Передавать на вход следует строку. Как видно на картинке, благодаря Decimal устраняются возможные ошибки округления.👉
Библиотека captcha, генерирующая звуковые и графические CAPTCHA
Установка —
Аудио- и графические CAPTCHA находятся в отдельных модулях:
https://github.com/lepture/captcha
👉
Установка —
pip install captchaАудио- и графические CAPTCHA находятся в отдельных модулях:
from captcha.audio import AudioCaptcha
from captcha.image import ImageCaptcha
audio = AudioCaptcha(voicedir='/path/to/voices')
image = ImageCaptcha(fonts=['/path/A.ttf', '/path/B.ttf'])
data = audio.generate('1234')
audio.write('1234', 'out.wav')
data = image.generate('1234')
image.write('1234', 'out.png')
https://github.com/lepture/captcha
👉
Как реализовать очередь в Python
Очереди (Queues) — одна из структур данных, используемая для хранения коллекций элементов в порядке first-in, first-out (FIFO). Всё, как в настоящей очереди, — кто первым вошёл, то раньше всех и вышел.
В Python очереди можно реализовать с помощью класса
Чтобы добавить элементы в очередь: в deque используем метод
Чтобы удалить элементы из очереди: в deque — метод
Чтобы проверить размер очереди, используем
Стоит отметить, что queue.Queue предназначен для многопоточного программирования.
👉
Очереди (Queues) — одна из структур данных, используемая для хранения коллекций элементов в порядке first-in, first-out (FIFO). Всё, как в настоящей очереди, — кто первым вошёл, то раньше всех и вышел.
В Python очереди можно реализовать с помощью класса
deque() из модуля collections или модуля queue.Чтобы добавить элементы в очередь: в deque используем метод
append(), в Queue — put()Чтобы удалить элементы из очереди: в deque — метод
popleft(), в Queue — get()Чтобы проверить размер очереди, используем
len()Стоит отметить, что queue.Queue предназначен для многопоточного программирования.
👉
Что делает функция takewhile() модуля itertools
Функция создаёт итератор, возвращающий элементы из итерируемого объекта до тех пор, пока указанное условие истинно (True или 1). Как только условие становится ложным, итератор прекращает свою работу и больше не возвращает элементы.
В примере takewhile будет возвращать элементы из списка my_list, пока они меньше пяти. Как только встретится элемент, равный или больший пяти, работа прекратится.
👉
Функция создаёт итератор, возвращающий элементы из итерируемого объекта до тех пор, пока указанное условие истинно (True или 1). Как только условие становится ложным, итератор прекращает свою работу и больше не возвращает элементы.
В примере takewhile будет возвращать элементы из списка my_list, пока они меньше пяти. Как только встретится элемент, равный или больший пяти, работа прекратится.
👉
Starmap()
Таким образом,
В примере
👉
starmap() принимает в качестве аргументов другую функцию и итерируемый объект, элементы которого представлены кортежами. Переданная функция применяется к каждому из кортежей, каждый кортеж распаковывается, и его элементы передаются в функцию как отдельные аргументы.Таким образом,
starmap() можно использовать вместо map(), если данные были предварительно упакованы в кортежи.В примере
starmap() позволяет вычислить квадраты чисел в кортежах в списке и сложить их.👉
Зачем нужен модуль enum
Содержит в себе перечисления, которые используются для создания именованных констант. Рассмотрим на примере:
Вы пишете приложение, в котором нужно обрабатывать различные типы ошибок (404, 500 и так далее). Перечисления могут быть использованы для представления разных кодов ошибок.
По сути, перечисления — это набор символических имён, связанных с уникальными значениями. По ним можно итерироваться. В целом, модуль enum позволяет создать более читаемый и самодокументирующийся код.
https://habr.com/ru/companies/timeweb/articles/564826/
👉
Содержит в себе перечисления, которые используются для создания именованных констант. Рассмотрим на примере:
Вы пишете приложение, в котором нужно обрабатывать различные типы ошибок (404, 500 и так далее). Перечисления могут быть использованы для представления разных кодов ошибок.
По сути, перечисления — это набор символических имён, связанных с уникальными значениями. По ним можно итерироваться. В целом, модуль enum позволяет создать более читаемый и самодокументирующийся код.
https://habr.com/ru/companies/timeweb/articles/564826/
👉
Модуль pprint для красивого вывода сложных структур данных
Используется как обычный
Также в модуле есть функция
Ещё для
👉
Используется как обычный
print(), но в отличие от него выводит данные в удобном для чтения человеком виде. Также в модуле есть функция
pformat(), которая создаёт строковые представления вместо вывода. Это может пригодиться для логгирования.Ещё для
pprint() можно задать ширину экрана печати, отступ последующего уровня вложенности и даже автоматически отсортировать словарь перед выводом. 👉
Минимальные примеры структур данных и алгоритмов на Python
Устанавливается просто через
Затем можно импортировать различные алгоритмы:
▫️сортировки (быстрая, пузырьком и ещё +22 вида);
▫️графовые;
▫️поиска;
▫️на деревьях и так далее.
https://github.com/keon/algorithms/
👉
Устанавливается просто через
pip install algorithmsЗатем можно импортировать различные алгоритмы:
▫️сортировки (быстрая, пузырьком и ещё +22 вида);
▫️графовые;
▫️поиска;
▫️на деревьях и так далее.
https://github.com/keon/algorithms/
👉
Python 3 Beginners Reference Cheat Sheet.pdf
332 KB
Шпаргалка по Python 3 для начинающих
👉
👉
Модуль fractions для работы с дробями
Создать рациональное число можно через
Целые и вещественные числа Python можно преобразовать в дробь, передав их
С модулем
👉
Создать рациональное число можно через
Fraction() из пары целых чисел, другого рационального числа или строки. Numerator — это числитель, а denominator — знаменатель. По умолчанию numerator=0, denominator=1. Целые и вещественные числа Python можно преобразовать в дробь, передав их
Fraction().С модулем
fractions устраняются проблемы с ошибками представления, возникающие в числах с плавающей точкой. 👉