Цикл событий в Python
Цикл событий — это ядро для каждого асинхронного приложения. Он нужен для того, что бы запускать асинхронные задачи и функции обратного вызова.
Поговорим теперь о низкоуровневых методах:
get_running_loop — Возвращает текущий цикл событий в потоке. Если его нет, то будет RuntimeError. Может быть вызвана только с корутины или функции обратного вызова.
get_event_loop — Делает тоже самое что и функция выше, но если set_event_loop не был вызван, то в добавок ещё закрепит новый цикл.
new_event_loop — Создает новый цикл событий.
set_event_loop — Устанавливает цикл событий для текущего потока.
Немного о методах для работы с циклами событий:
run_forever — Запускает цикл событий до тех пока stop не будет вызван.
stop — Останавливает цикл событий.
Также есть методы is_closed и is_running для проверки состояния.
Пример можете посмотреть на картинке выше. Много другого полезного вы можете прочитать в документации.
Подписывайтесь на канал 👉@pythonofff
Цикл событий — это ядро для каждого асинхронного приложения. Он нужен для того, что бы запускать асинхронные задачи и функции обратного вызова.
Поговорим теперь о низкоуровневых методах:
get_running_loop — Возвращает текущий цикл событий в потоке. Если его нет, то будет RuntimeError. Может быть вызвана только с корутины или функции обратного вызова.
get_event_loop — Делает тоже самое что и функция выше, но если set_event_loop не был вызван, то в добавок ещё закрепит новый цикл.
new_event_loop — Создает новый цикл событий.
set_event_loop — Устанавливает цикл событий для текущего потока.
Немного о методах для работы с циклами событий:
run_forever — Запускает цикл событий до тех пока stop не будет вызван.
stop — Останавливает цикл событий.
Также есть методы is_closed и is_running для проверки состояния.
Пример можете посмотреть на картинке выше. Много другого полезного вы можете прочитать в документации.
Подписывайтесь на канал 👉@pythonofff
👍2
Отбрасываем строки с пустыми данными
После выполнения предыдущих шагов по очистке в столбцах остаются пустые данные. От этих пустых строк нужно избавиться, иначе это создаст неопределенность при обучении модели.
Подписывайтесь на канал 👉@pythonofff
После выполнения предыдущих шагов по очистке в столбцах остаются пустые данные. От этих пустых строк нужно избавиться, иначе это создаст неопределенность при обучении модели.
Подписывайтесь на канал 👉@pythonofff
👍3
Захват экрана Windows
Существует несколько библиотек на Python для захвата экрана компьютера под управлением операционной системы Windows, но самой быстрой оказалась библиотека d3dshot.
Она использует системные библиотеки DXGI и Direct3D, чтобы обеспечить чрезвычайно быструю и надежную функциональность захвата экрана.
Её можно применить, например, в реализации игровых ботов.
Существует несколько библиотек на Python для захвата экрана компьютера под управлением операционной системы Windows, но самой быстрой оказалась библиотека d3dshot.
Она использует системные библиотеки DXGI и Direct3D, чтобы обеспечить чрезвычайно быструю и надежную функциональность захвата экрана.
Её можно применить, например, в реализации игровых ботов.
😐1
Перемещение и удаление файлов в Python
Чтобы переместить файл, мы можем воспользоваться модулем os или модулем shutil. Вы увидите перемещение файла при помощи метода rename() из модуля os.
Синтаксис rename() тот же, только в качестве второго аргумента указывается путь к целевому файлу с именем самого файла.
os.rename(исходноеместонахождение, целевоеместонахождение)
Подписывайтесь на канал 👉@pythonofff
Чтобы переместить файл, мы можем воспользоваться модулем os или модулем shutil. Вы увидите перемещение файла при помощи метода rename() из модуля os.
Синтаксис rename() тот же, только в качестве второго аргумента указывается путь к целевому файлу с именем самого файла.
os.rename(исходноеместонахождение, целевоеместонахождение)
Подписывайтесь на канал 👉@pythonofff
👍4🤔1
Работаем с картинками в Python
Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в Python.
В сегодняшнем примере мы применим ее для конвертации картинки в черно-белую, обратим цвета, вертикально отзеркалим и сохраним в файл.
Метод Image.open('resources/img/cat.jpg') считывает картинку из папки.
img.convert('L') трансформирует картинку в черно-белую.
ImageOps.invert(image) обращает цвета.
img.transpose(Image.FLIP_LEFT_RIGHT) вертикально отзеркаливает картинку.
img.save('grayscale_cat.jpg') сохранит картинку на диске.
Больше официальных примеров и документацию можно посмотреть тут.
Подписывайтесь на канал 👉@pythonofff
Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в Python.
В сегодняшнем примере мы применим ее для конвертации картинки в черно-белую, обратим цвета, вертикально отзеркалим и сохраним в файл.
Метод Image.open('resources/img/cat.jpg') считывает картинку из папки.
img.convert('L') трансформирует картинку в черно-белую.
ImageOps.invert(image) обращает цвета.
img.transpose(Image.FLIP_LEFT_RIGHT) вертикально отзеркаливает картинку.
img.save('grayscale_cat.jpg') сохранит картинку на диске.
Больше официальных примеров и документацию можно посмотреть тут.
Подписывайтесь на канал 👉@pythonofff
👍2🔥1
Дальнейшая обработка данных
Иногда, чтобы очистить данные, бывает нужно отбросить некоторые столбцы, создать новый столбец из существующих данных или удалить строки, не содержащие определенных данных.
Здесь в третьей строке мы отбрасываем два столбца с именами Id и Name и возвращаем копию нового датафрейма.
Четвертая строка проверяет, содержит ли столбец Type строку frozen или green, затем возвращает True и сохраняет эту строку.
Подписывайтесь на канал 👉@pythonofff
Иногда, чтобы очистить данные, бывает нужно отбросить некоторые столбцы, создать новый столбец из существующих данных или удалить строки, не содержащие определенных данных.
Здесь в третьей строке мы отбрасываем два столбца с именами Id и Name и возвращаем копию нового датафрейма.
Четвертая строка проверяет, содержит ли столбец Type строку frozen или green, затем возвращает True и сохраняет эту строку.
Подписывайтесь на канал 👉@pythonofff
🔥2
Missingno
Большие грязные наборы данных и часто отсутствующие значения в них — это одна из частых проблем при работы с датасетами, и это важно отлавливать такие моменты.
Для таких целей существует Missingo — библиотека, которая имеет в себе небольшой набор простых в использовании средств для визуализации отсутствующих данных и утилит, которые позволяют быстро получить сводку полноты или отсутствия вашего набора данных.
Подписывайтесь на канал 👉@pythonofff
Большие грязные наборы данных и часто отсутствующие значения в них — это одна из частых проблем при работы с датасетами, и это важно отлавливать такие моменты.
Для таких целей существует Missingo — библиотека, которая имеет в себе небольшой набор простых в использовании средств для визуализации отсутствующих данных и утилит, которые позволяют быстро получить сводку полноты или отсутствия вашего набора данных.
Подписывайтесь на канал 👉@pythonofff
👍3
Чтение файлов и запись в них
Чтобы выполнить любую из операций чтения и записи, нам нужно сделать три основных шага:
Открыть файл
Выполнить операцию
Закрыть файл
Мы можем проделывать эти шаги, используя два паттерна. Объяснить их на словах сложно, но мы сделаем это при помощи кода.
Подписывайтесь на канал 👉@pythonofff
Чтобы выполнить любую из операций чтения и записи, нам нужно сделать три основных шага:
Открыть файл
Выполнить операцию
Закрыть файл
Мы можем проделывать эти шаги, используя два паттерна. Объяснить их на словах сложно, но мы сделаем это при помощи кода.
Подписывайтесь на канал 👉@pythonofff
👍1
Работаем с котировками акций в Python
Библиотека yfinance предоставляет мощный и удобный инструмент для получения информации с ресурса Yahoo! finance в Python.
В сегодняшнем примере применим эту библиотеку чтобы узнать цену акций Майкрософт.
Тикер Макйрософт называется "MSFT", именно его необходимо вписать в методе поиска:
msft = yf.Ticker("MSFT")
Цена акции находится в поле ['regularMarketPrice']:
price = msft.info['regularMarketPrice']
Кроме этого yfinance предоставляет огромное количество такой информации о тикере как:
— Исторические данные рынка;
— Информация по дивидентам;
— Информация о фирме (адрес, количество работников, прибыль) и т. д.
Больше подробно об этой библиотеке можно посмотреть тут.
Подписывайтесь на канал 👉@pythonofff
Библиотека yfinance предоставляет мощный и удобный инструмент для получения информации с ресурса Yahoo! finance в Python.
В сегодняшнем примере применим эту библиотеку чтобы узнать цену акций Майкрософт.
Тикер Макйрософт называется "MSFT", именно его необходимо вписать в методе поиска:
msft = yf.Ticker("MSFT")
Цена акции находится в поле ['regularMarketPrice']:
price = msft.info['regularMarketPrice']
Кроме этого yfinance предоставляет огромное количество такой информации о тикере как:
— Исторические данные рынка;
— Информация по дивидентам;
— Информация о фирме (адрес, количество работников, прибыль) и т. д.
Больше подробно об этой библиотеке можно посмотреть тут.
Подписывайтесь на канал 👉@pythonofff
👍2
Удаление URL-адресов
Для получения данных многие пользуются опросами. Но люди невнимательно заполняют поля, и порой в этих данных встречаются URL-адреса. Регулярное выражение, приведенное ниже, удаляет URL.
Вы можете использовать и любой другой regex-паттерн для поиска URL. Здесь найденные адреса заменяются пустой строкой.
Подписывайтесь на канал 👉@pythonofff
Для получения данных многие пользуются опросами. Но люди невнимательно заполняют поля, и порой в этих данных встречаются URL-адреса. Регулярное выражение, приведенное ниже, удаляет URL.
Вы можете использовать и любой другой regex-паттерн для поиска URL. Здесь найденные адреса заменяются пустой строкой.
Подписывайтесь на канал 👉@pythonofff
👍2
Работа с ChainMap из collections
СhainMap группирует несколько словарей или других сопоставлений вместе, чтобы создать единое представление.
Иногда нам нужно сгруппировать словари в один или же работать с множеством словарей как с одним, в этом случае вам поможет ChainMap.
Немного про особенности ChainMap:
— Представляет тот же интерфейс, что и словарь, но с дополнительными возможностями;
— Создает обновляемое представление;
— Видит внешние изменения во входных отображениях.
Подписывайтесь на канал 👉@pythonofff
СhainMap группирует несколько словарей или других сопоставлений вместе, чтобы создать единое представление.
Иногда нам нужно сгруппировать словари в один или же работать с множеством словарей как с одним, в этом случае вам поможет ChainMap.
Немного про особенности ChainMap:
— Представляет тот же интерфейс, что и словарь, но с дополнительными возможностями;
— Создает обновляемое представление;
— Видит внешние изменения во входных отображениях.
Подписывайтесь на канал 👉@pythonofff
👍2🔥1😐1
Перевод данных в нижний регистр
Весьма вероятно, что вам придется изменить регистр данных. Здесь мы переводим их в нижний.
Первые две строки кода заменяют табы и символы перевода строки на пустые строки. Третья строка ищет два и более пробелов при помощи регулярного выражения, а затем заменяет их на один пробел. Наконец, последняя строка обрезает данные с обоих концов, удаляя пробелы.
Подписывайтесь на канал 👉@pythonofff
Весьма вероятно, что вам придется изменить регистр данных. Здесь мы переводим их в нижний.
Первые две строки кода заменяют табы и символы перевода строки на пустые строки. Третья строка ищет два и более пробелов при помощи регулярного выражения, а затем заменяет их на один пробел. Наконец, последняя строка обрезает данные с обоих концов, удаляя пробелы.
Подписывайтесь на канал 👉@pythonofff
👍1
Counter из collections
Counter — это подкласс словаря dict. Сама коллекция нужна для хранения элементов в виде словарных ключей, а их счетчики хранятся в виде значений словаря.
Для отсутствующих элементов вернется 0 вместо KeyError.
Немного о методах:
elements — возвращает итератор по элементам, каждый из которых повторяется столько раз, сколько его количество.
most_common — возвращает список из n наиболее распространенных элементов.
Подписывайтесь на канал 👉@pythonofff
Counter — это подкласс словаря dict. Сама коллекция нужна для хранения элементов в виде словарных ключей, а их счетчики хранятся в виде значений словаря.
Для отсутствующих элементов вернется 0 вместо KeyError.
Немного о методах:
elements — возвращает итератор по элементам, каждый из которых повторяется столько раз, сколько его количество.
most_common — возвращает список из n наиболее распространенных элементов.
Подписывайтесь на канал 👉@pythonofff
👍1
Удаление эмодзи
Зачастую нам не нужны эмодзи в текстовых наборах данных. Мы можем их удалить всего одной строчкой кода. Сниппет, приведенный ниже, будет удалять эмодзи из датафрейма pandas столбец за столбцом. Этот сниппет можно найти на Stackoverflow.
Подписывайтесь на канал 👉@pythonofff
Зачастую нам не нужны эмодзи в текстовых наборах данных. Мы можем их удалить всего одной строчкой кода. Сниппет, приведенный ниже, будет удалять эмодзи из датафрейма pandas столбец за столбцом. Этот сниппет можно найти на Stackoverflow.
Подписывайтесь на канал 👉@pythonofff
👍1
Слабые ссылки
Weakref позволяет создавать слабые ссылки к объектам, но не поддерживают объект живым, если не осталось больше сильных ссылок.
Слабые ссылки нужны для организации кэшей и хеш-таблиц из тяжелых объектов, потому что в долгоживущих программах может закончится память из-за большого хранения в кэшах.
Подписывайтесь на канал 👉@pythonofff
Weakref позволяет создавать слабые ссылки к объектам, но не поддерживают объект живым, если не осталось больше сильных ссылок.
Слабые ссылки нужны для организации кэшей и хеш-таблиц из тяжелых объектов, потому что в долгоживущих программах может закончится память из-за большого хранения в кэшах.
Подписывайтесь на канал 👉@pythonofff
👍1
Удаление дублирующихся данных
Чтобы очистить данные, некоторые шаги нужно сделать обязательно. Один из таких шагов — удаление дубликатов. И тут не важно, идет речь о текстовых или числовых данных. Если у вас слишком много дубликатов, это увеличивает время обработки данных.
Подписывайтесь на канал 👉@pythonofff
Чтобы очистить данные, некоторые шаги нужно сделать обязательно. Один из таких шагов — удаление дубликатов. И тут не важно, идет речь о текстовых или числовых данных. Если у вас слишком много дубликатов, это увеличивает время обработки данных.
Подписывайтесь на канал 👉@pythonofff
👍2
Рисуем графики
Графическая библиотека plotly позволяет создавать интерактивные качественные графики в Python.
В сегодняшнем примере применим эту библиотеку чтобы построить простой линейный график.
Сначала нам нужен список с данными, которые мы хотим изобразить на графике. Это может быть, например, список или numpy массив:
data = [1, 1.3, 2.1, 4, 3.5, 7]
Далее метод fig = px.line(y=data) принимает наши данные и строит график в виде точек с координатами из массива и обьединяет их линиями.
Метод fig.show() откроет графическое окно с изображенным графиком.
Кроме этого plotly позволяет строить такие графики как:
— Точечные графики;
— Круговые диаграммы;
— Гистограммы;
— Тепловые карты;
— Пузырьковые диаграммы;
— И многие другие.
Больше подробно об этой библиотеке и способы ее применения можно посмотреть тут.
Подписывайтесь на канал 👉@pythonofff
Графическая библиотека plotly позволяет создавать интерактивные качественные графики в Python.
В сегодняшнем примере применим эту библиотеку чтобы построить простой линейный график.
Сначала нам нужен список с данными, которые мы хотим изобразить на графике. Это может быть, например, список или numpy массив:
data = [1, 1.3, 2.1, 4, 3.5, 7]
Далее метод fig = px.line(y=data) принимает наши данные и строит график в виде точек с координатами из массива и обьединяет их линиями.
Метод fig.show() откроет графическое окно с изображенным графиком.
Кроме этого plotly позволяет строить такие графики как:
— Точечные графики;
— Круговые диаграммы;
— Гистограммы;
— Тепловые карты;
— Пузырьковые диаграммы;
— И многие другие.
Больше подробно об этой библиотеке и способы ее применения можно посмотреть тут.
Подписывайтесь на канал 👉@pythonofff
Профилирование
Профилирование — это процесс, который помогает при работе с данными и их обработке. Пожалуй, одна из самых известных Python-библиотек для этого – Pandas. Данная библиотека является довольно понятной в использовании и благодаря ей можно быстро выполнять анализ данных. Кроме того, Pandas имеет встроенную функцию .plot() как часть класса DataFrame, что позволяет демонстрировать на графиках обрабатываемые данные.
Подписывайтесь на канал 👉@pythonofff
Профилирование — это процесс, который помогает при работе с данными и их обработке. Пожалуй, одна из самых известных Python-библиотек для этого – Pandas. Данная библиотека является довольно понятной в использовании и благодаря ей можно быстро выполнять анализ данных. Кроме того, Pandas имеет встроенную функцию .plot() как часть класса DataFrame, что позволяет демонстрировать на графиках обрабатываемые данные.
Подписывайтесь на канал 👉@pythonofff
👍4
Аннотации типов
Python имеет динамическую типизацию и позволяет нам оперировать переменными разных типов, и иногда у нас бывают ошибки, связанные с некорректной передачей данных неверного типа.
В современных версиях 3.6+ добавилась поддержка аннотации типов переменных, полей класса,аргументов и возвращаемых значений.
Подписывайтесь на канал 👉@pythonofff
Python имеет динамическую типизацию и позволяет нам оперировать переменными разных типов, и иногда у нас бывают ошибки, связанные с некорректной передачей данных неверного типа.
В современных версиях 3.6+ добавилась поддержка аннотации типов переменных, полей класса,аргументов и возвращаемых значений.
Подписывайтесь на канал 👉@pythonofff
Генераторные фунции (generator functions)
Если предикатов фильтрации или обработчиков элементов списка много, то удобнее использовать генераторы. Они могут не дать прироста скорости, но помогут сэкономить память.
Генераторной фунцией в python называется функция, которая ведет себя как итератор. Для определения генераторной функции нужно использовать ключевое слово yield
Подписывайтесь на канал 👉@pythonofff
Если предикатов фильтрации или обработчиков элементов списка много, то удобнее использовать генераторы. Они могут не дать прироста скорости, но помогут сэкономить память.
Генераторной фунцией в python называется функция, которая ведет себя как итератор. Для определения генераторной функции нужно использовать ключевое слово yield
Подписывайтесь на канал 👉@pythonofff
🔥1🤔1