Python академия
7.72K subscribers
2.33K photos
5 videos
268 links
Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Download Telegram
Pyperclip

Этот модуль был создан для межплатформенного копирования в Python. В Pyperclip есть функции copy() и paste(), которые могут отправлять текст в буфер обмена и получать текст из него.

Отправка вывода вашей программы в буфер обмена облегчает его вставку в email, текстовый редактор или другую программу.

Подписывайтесь на канал 👉@pythonofff
Получение аудиопотока с микрофона

Библиотека PyAudio предоставляет возможности для записи аудиопотока с различных устройств.

PyAudio работает посредством кросс-платформенной библиотеки PortAudio (поэтому необходимо заранее установить пакет разработки portaudio19-dev).

В приведенном примере мы создаем объект класса PyAudio и открываем поток с рядом констант для настройки аудиопотока, поступающего с микрофона (для выбора другого устройства нужно передать его номер в качестве аргумента input_device_index).

Данный объект потока позволяет считывать с устройства с помощью метода stream.read(). Полученную информацию мы можем использовать для дальнейшего анализа и модификации.

В примере же мы просто считываем 10 секунд, после чего записываем их в аудио-файл wav.

Подписывайтесь на канал 👉@pythonofff
👍2
Defaultdict

Словарь представляет из себя неупорядоченный набор ключей и значений.

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

Подписывайтесь на канал 👉@pythonofff
👍1
Как найти наиболее частотные элементы с помощью счетчика

Счетчик очень полезен в реальных приложениях. Особенно, когда вам нужно обработать большие данные, и вы хотите узнать частотность некоторых элементов. Давайте рассмотрим несколько очень полезных методов, использующих counter.
Counter().most_common([n])
Подписывайтесь на канал 👉@pythonofff
👍1
Форматирование чисел в f-строках

Начиная с версии Python 3.6, стали доступны f-строки. Это удобный способ форматирования текста. Но не все знают, что он умеет вставлять float числа с настраиваемым количеством знаков после запятой.

Допустим у нас есть float число pi = 3.14159265359. Если мы его просто скорвертируем в строку, то она примет следующий вид:

>>> str(3.14159265359)

'3.14159265359'


Но что если важно выписать только до сотых долей? Делается это черех f-строку:

>>> f'Число Пи это {pi:.2f}'

'Число Пи это 3.14'


После обьявления имени переменной мы вставляем следующую комбинацию: .2f, где цифра как раз и указывает, сколько знаков после запятой нужно преобразовать в строку. Более подробно это описано в PEP 498.

Подписывайтесь на канал 👉@pythonofff
2👍2
Counter

Объект counter предоставляется библиотекой collections. Давайте поподробнее разберем, что он собой представляет.

К примеру, у вас есть список каких-то случайных чисел. Что, если вы хотите узнать, сколько раз встречается каждое число?

Счетчик counter позволяет легко вычислить частоту. Он работает не только с числами, но и с любым итерируемыми объектами, такими как строки и списки.

Подписывайтесь на канал 👉@pythonofff
👍3
Библиотека для работы с итераторами

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

combinations — возвращает кортеж в отсортированном порядке без повторяемых элементов.

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

permutations — возвращает все возможные перестановки.

filterfalse — возвращает все элементы для которых функция вернула false.

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

В самой библиотеке их намного больше, поэтому советую вам ознакомится с документацией.

Подписывайтесь на канал 👉@pythonofff
👍2😁1
Как заменить атрибут в именованном кортеже

Что делать, если значение одного атрибута необходимо изменить?

Вам нужно обновить его в данных. Для этого просто воспользуемся методом ._replace()

Подписывайтесь на канал 👉@pythonofff
🤔2👍1
Модуль os

Данный модуль предоставляет доступ к уникальным функциям, зависящим от конкретной системы. Атрибут os.name покажет тип операционной системы:

posix — для linux и macOS
nt — для операционных систем семейства Windows
java — для систем, работающих в виртуальной Java-машине (например, Android)

Модуль позволяет создавать, удалять, переименовывать файлы и папки. Возможность менять директорию и писать вместо /foler/file1, /foler/file2 и тд, можно просто сменить директорию через функцию os.chdir().

os.access() - проверить наличие файла и возможность записи/чтение.

os.listdir() - список файлов и вложенных каталогов.

os.path.abspath() - вернет абсолютный путь по относительному.

Полный список и документацию можно посмотреть через dir() и help() соответственно.

Подписывайтесь на канал 👉@pythonofff
👍21
Определение метода тестирования

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

Большие отличия от метода тестирования заключаются в том, что мы используем model.eval(), чтобы перевести модель в режим тестирования, и torch.no_grad(), который отключит вычисление градиента, так как мы не используем обратное распространение во время тестирования.

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

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

Здесь в третьей строке мы отбрасываем два столбца с именами Id и Name и возвращаем копию нового датафрейма.

Четвертая строка проверяет, содержит ли столбец Type строку frozen или green, затем возвращает True и сохраняет эту строку.

Подписывайтесь на канал 👉@pythonofff
🔥2
Отбрасываем строки с пустыми данными

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

Подписывайтесь на канал 👉@pythonofff
👍1
Перемещение и удаление файлов в Python

Чтобы переместить файл, мы можем воспользоваться модулем os или модулем shutil. Вы увидите перемещение файла при помощи метода rename() из модуля os.

Синтаксис rename() тот же, только в качестве второго аргумента указывается путь к целевому файлу с именем самого файла.

os.rename(исходноеместонахождение, целевоеместонахождение)

Подписывайтесь на канал 👉@pythonofff
👍31👏1
Дальнейшая обработка данных

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

Здесь в третьей строке мы отбрасываем два столбца с именами Id и Name и возвращаем копию нового датафрейма.

Четвертая строка проверяет, содержит ли столбец Type строку frozen или green, затем возвращает True и сохраняет эту строку.

Подписывайтесь на канал 👉@pythonofff
👍1
Missingno

Большие грязные наборы данных и часто отсутствующие значения в них — это одна из частых проблем при работы с датасетами, и это важно отлавливать такие моменты.

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

Подписывайтесь на канал 👉@pythonofff
👍1
Работаем с котировками акций в Python

Библиотека yfinance предоставляет мощный и удобный инструмент для получения информации с ресурса Yahoo! finance в Python.

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

Тикер Макйрософт называется "MSFT", именно его необходимо вписать в методе поиска:
msft = yf.Ticker("MSFT")
Цена акции находится в поле ['regularMarketPrice']:
price = msft.info['regularMarketPrice']
Кроме этого yfinance предоставляет огромное количество такой информации о тикере как:

— Исторические данные рынка;
— Информация по дивидентам;
— Информация о фирме (адрес, количество работников, прибыль) и т. д.


Подписывайтесь на канал 👉@pythonofff
3🥰2🔥1
Удаление URL-адресов

Для получения данных многие пользуются опросами. Но люди невнимательно заполняют поля, и порой в этих данных встречаются URL-адреса. Регулярное выражение, приведенное ниже, удаляет URL.

Вы можете использовать и любой другой regex-паттерн для поиска URL. Здесь найденные адреса заменяются пустой строкой.

Подписывайтесь на канал 👉@pythonofff
👍1
Работа с ChainMap из collections

СhainMap группирует несколько словарей или других сопоставлений вместе, чтобы создать единое представление.

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

Немного про особенности ChainMap:

— Представляет тот же интерфейс, что и словарь, но с дополнительными возможностями;
— Создает обновляемое представление;
— Видит внешние изменения во входных отображениях.

Подписывайтесь на канал 👉@pythonofff
👍3🥰1😁1
Удаление дублирующихся данных

Чтобы очистить данные, некоторые шаги нужно сделать обязательно. Один из таких шагов — удаление дубликатов. И тут не важно, идет речь о текстовых или числовых данных. Если у вас слишком много дубликатов, это увеличивает время обработки данных.

Подписывайтесь на канал 👉@pythonofff
👍2
Рисуем графики

Графическая библиотека plotly позволяет создавать интерактивные качественные графики в Python.

В сегодняшнем примере применим эту библиотеку чтобы построить простой линейный график.

Сначала нам нужен список с данными, которые мы хотим изобразить на графике. Это может быть, например, список или numpy массив:
data = [1, 1.3, 2.1, 4, 3.5, 7]
Далее метод fig = px.line(y=data) принимает наши данные и строит график в виде точек с координатами из массива и обьединяет их линиями.

Метод fig.show() откроет графическое окно с изображенным графиком.

Кроме этого plotly позволяет строить такие графики как:

— Точечные графики;
— Круговые диаграммы;
— Гистограммы;
— Тепловые карты;
— Пузырьковые диаграммы;
— И многие другие.

Больше подробно об этой библиотеке и способы ее применения можно посмотреть тут.

Подписывайтесь на канал 👉@pythonofff
👍4