Работаем с картинками в Python
Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в 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')
сохранит картинку на диске.Использование списка списков (List Comprehensions) для создания двумерных массивов
Когда вам нужно создать двумерный массив (список списков) с инициализированными значениями, можно использовать мощные и лаконичные возможности списка списков в Python.
Использование списка списков позволяет легко и быстро создавать двумерные массивы с любой логикой инициализации, делая код компактным и понятным.
Когда вам нужно создать двумерный массив (список списков) с инициализированными значениями, можно использовать мощные и лаконичные возможности списка списков в Python.
Использование списка списков позволяет легко и быстро создавать двумерные массивы с любой логикой инициализации, делая код компактным и понятным.
Наследование
Нередко в процессе написания кода выясняется, что некоторые объекты аналогичны другим за исключением нескольких различий. Определение сходств и различий между такими объектами называется "наследованием".
Мы все прекрасно знаем, что котики, к примеру, любят всё ронять, а собакены — рыть землю. Создадим два соответствующих класса-наследника.
Теперь объекты этих двух классов могут не только издавать животные звуки, но и выполнять собственные уникальные действия.
Нередко в процессе написания кода выясняется, что некоторые объекты аналогичны другим за исключением нескольких различий. Определение сходств и различий между такими объектами называется "наследованием".
Мы все прекрасно знаем, что котики, к примеру, любят всё ронять, а собакены — рыть землю. Создадим два соответствующих класса-наследника.
Теперь объекты этих двух классов могут не только издавать животные звуки, но и выполнять собственные уникальные действия.
⚙️ pathlib для работы с системными путями
ℹ️ Модуль Python os, мягко говоря, отстой… К счастью, разработчики ядра Python услышали крики миллионов и представили библиотеку pathlib в Python 3.4. Она обеспечивает удобный объектно-ориентированный подход к системным путям.
🗣️ Она также очень старается решить все проблемы, связанные с системой путей Windows
🔗 Ссылочка на доку
ℹ️ Модуль Python os, мягко говоря, отстой… К счастью, разработчики ядра Python услышали крики миллионов и представили библиотеку pathlib в Python 3.4. Она обеспечивает удобный объектно-ориентированный подход к системным путям.
🗣️ Она также очень старается решить все проблемы, связанные с системой путей Windows
🔗 Ссылочка на доку
👨💻 The Algorithms — крупнейшая библиотека алгоритмов с открытым исходным кодом.
Отличная подборка самых популярных алгоритмов на Python и других языках. Идеально подходит для обучения.
📂 Сохраняем
📌 Веб-сайт на русском
📌 GitHub
#doc #cheatsheet #python
Отличная подборка самых популярных алгоритмов на Python и других языках. Идеально подходит для обучения.
📂 Сохраняем
📌 Веб-сайт на русском
📌 GitHub
#doc #cheatsheet #python
Многопоточность
В модуле
Параметр
Когда
#потоки #многопоточность
В модуле
threading
новый поток выполнения может начинаться с нового threading.Thread
и присвоения ему функции для выполнения.Параметр
target
ссылается на функцию (или вызываемый объект), который будет работать. Нить не начнет выполнение до start
, также не будет вызываться Thread
объекта.Когда
my_thread
завершается, вызов start
выкинет исключение RuntimeError. Если вы хотите запустить Thread в фоновом режиме, то передавайте daemon=True
или установите my_thread.daemon
в True
перед вызовом start()
.#потоки #многопоточность
➡️ PyForest: Один импорт для всех важных модулей
Импортируйте все ключевые библиотеки Python одной строкой. Это удобно для всех ваших проектов по Data Science и при создании нового окружения в Conda.
🗣️ При работе с данными вы используете библиотеки, такие как pandas, matplotlib, seaborn, numpy и sklearn. Прежде чем приступить к работе, нужно их импортировать.
Библиотека решает несколько проблем:
• Однообразие: импорт всегда одинаковый и скучный.
• Пропущенные импорты мешают работе.
• Иногда нужно искать точные строки импорта, например, import matplotlib.pyplot as plt или from sklearn.ensemble import GradientBoostingRegressor.
🔗 Ссылочка на доку
Импортируйте все ключевые библиотеки Python одной строкой. Это удобно для всех ваших проектов по Data Science и при создании нового окружения в Conda.
🗣️ При работе с данными вы используете библиотеки, такие как pandas, matplotlib, seaborn, numpy и sklearn. Прежде чем приступить к работе, нужно их импортировать.
Библиотека решает несколько проблем:
• Однообразие: импорт всегда одинаковый и скучный.
• Пропущенные импорты мешают работе.
• Иногда нужно искать точные строки импорта, например, import matplotlib.pyplot as plt или from sklearn.ensemble import GradientBoostingRegressor.
🔗 Ссылочка на доку
Использование try/except для безопасного доступа к словарям
Когда вы работаете со словарями и хотите получить значение по ключу, но не уверены, существует ли этот ключ, вместо того чтобы писать сложные проверки, можно использовать конструкцию try/except.
Использование try/except делает код более надёжным и защищает от сбоев, вызванных отсутствием ключей в словарях, что упрощает работу с динамическими и неопределёнными данными.
Когда вы работаете со словарями и хотите получить значение по ключу, но не уверены, существует ли этот ключ, вместо того чтобы писать сложные проверки, можно использовать конструкцию try/except.
Использование try/except делает код более надёжным и защищает от сбоев, вызванных отсутствием ключей в словарях, что упрощает работу с динамическими и неопределёнными данными.
Media is too big
VIEW IN TELEGRAM
▶️ ООП: Наследование (Inheritance)
Сегодня разберемся что это такое и зачем это нужно программисту
Наследование – это механизм доступа к данным и поведению предка, а также способ расширения (изменения поведения) класса не изменяя его код.
Главное правило наследования: наследник является предком, например директор является работником, но машина не является двигателем, потому наследовать автомобиль от двигателя нельзя, тут нужна композиция.
👀 Смотреть на YouTube
Сегодня разберемся что это такое и зачем это нужно программисту
Наследование – это механизм доступа к данным и поведению предка, а также способ расширения (изменения поведения) класса не изменяя его код.
Главное правило наследования: наследник является предком, например директор является работником, но машина не является двигателем, потому наследовать автомобиль от двигателя нельзя, тут нужна композиция.
👀 Смотреть на YouTube
⚙️ Fabulous — вывод картинок в консоль
ℹ️ Вам не достаточно красивого вывода таблиц в консоль? А как насчёт вывода текста с тенями или даже картинок? Теперь это возможно!
🗣️ Использовать только в небольших количествах во избежание перелома чувства прекрасного
🔗 Ссылочка на доку
ℹ️ Вам не достаточно красивого вывода таблиц в консоль? А как насчёт вывода текста с тенями или даже картинок? Теперь это возможно!
🗣️ Использовать только в небольших количествах во избежание перелома чувства прекрасного
🔗 Ссылочка на доку
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Полезные библиотеки Python
pdf2docx — Python модуль который позволяет конвертировать PDF документы в docx для дальнейшего редактирования.
Установка:
Пример работы:
⚙️ GitHub/Инструкция
#soft #code #python #github
pdf2docx — Python модуль который позволяет конвертировать PDF документы в docx для дальнейшего редактирования.
Установка:
$ pip install pdf2docx
Пример работы:
from pdf2docx import Converter
pdf_file = '/path/to/sample.pdf'
docx_file = 'path/to/sample.docx'
# convert pdf to docx
cv = Converter(pdf_file)
# all pages by default
cv.convert(docx_file)
cv.close()
⚙️ GitHub/Инструкция
#soft #code #python #github
Использование функции enumerate() для нумерации элементов в цикле
Когда вам нужно итерировать по списку и одновременно отслеживать индекс каждого элемента, использование функции enumerate() упрощает эту задачу, избавляя от необходимости вручную управлять счётчиком.
Использование enumerate() улучшает читаемость кода и упрощает работу с индексами при итерации по спискам, что особенно полезно при обработке больших данных или сложных списков.
Когда вам нужно итерировать по списку и одновременно отслеживать индекс каждого элемента, использование функции enumerate() упрощает эту задачу, избавляя от необходимости вручную управлять счётчиком.
Использование enumerate() улучшает читаемость кода и упрощает работу с индексами при итерации по спискам, что особенно полезно при обработке больших данных или сложных списков.
⚙️ Temporian для предварительной обработки временных данных
ℹ️ Temporian предлагает новую парадигму для работы с временными данными. Будучи специально разработанными для него, плюс его основные вычисления, выполняемые как высокооптимизированный код C ++, позволяют ему сделать обычные временные операции более безопасными, простыми в написании и намного, намного быстрее в выполнении - с бенчмарками, показывающими ускорение более чем в 100 раз по сравнению с эквивалентным кодом pandas.
🔗 Ссылочка на доку
ℹ️ Temporian предлагает новую парадигму для работы с временными данными. Будучи специально разработанными для него, плюс его основные вычисления, выполняемые как высокооптимизированный код C ++, позволяют ему сделать обычные временные операции более безопасными, простыми в написании и намного, намного быстрее в выполнении - с бенчмарками, показывающими ускорение более чем в 100 раз по сравнению с эквивалентным кодом pandas.
🔗 Ссылочка на доку
📣 Как перехватывать сразу несколько исключений
Исключения – это механизм взаимодействия различных частей программы. Этот механизм позволяет одной части системы уведомлять о том, что она столкнулась с некой критической ошибкой и не знает, как с ней справиться
Перехват исключений в Python помогает уменьшить количество возникающих в программе сбоев
В этой статье я расскажу, как перехватывать несколько исключений в одном блоке try/except в Python
🖥 Читать подробнее
Исключения – это механизм взаимодействия различных частей программы. Этот механизм позволяет одной части системы уведомлять о том, что она столкнулась с некой критической ошибкой и не знает, как с ней справиться
Перехват исключений в Python помогает уменьшить количество возникающих в программе сбоев
В этой статье я расскажу, как перехватывать несколько исключений в одном блоке try/except в Python
🖥 Читать подробнее
Использование "словаря через .get()" для безопасного доступа к значениям
Когда вы работаете со словарями и вам нужно получить значение по ключу, но не хотите сталкиваться с ошибкой, если ключ отсутствует, метод .get() — отличное решение.
Использование метода .get() позволяет сделать код более устойчивым к ошибкам и упрощает обработку данных, где наличие ключей не всегда гарантировано.
Когда вы работаете со словарями и вам нужно получить значение по ключу, но не хотите сталкиваться с ошибкой, если ключ отсутствует, метод .get() — отличное решение.
Использование метода .get() позволяет сделать код более устойчивым к ошибкам и упрощает обработку данных, где наличие ключей не всегда гарантировано.
Media is too big
VIEW IN TELEGRAM
▶️ Атрибуты класса, classmethod и staticmethod
Посмотрим в первом приближении на атрибуты класса, как с ними работать, для чего нужны декораторы classmethod и staticmethod
⏺ LEGB – правило продолжает действовать для простых имен переменных и их поиска
⏺ Для self атрибутов поиск идет сначала в объекте, потом в классе, затем у предков OCP(object-class-parent). То есть через self можно достучаться как к обычным методам/атрибутам, так и к классовым, статичным
⏺ Если через self пытаться поменять неизменяемый атрибут (строка) класса, то будет создана локальная копия, ее не увидят другие объекты класса
⏺ Если менять через self изменямый атрибут класса (список), то он изменится для всех объектов класса
⏺ cls – это ссылка на класс (не объект!), питон передает его под капотом. cls = Class
⏺ classmethod используется для работы с атрибутами класса и с другими методами класса. Часто используется для конструирования готовых объектов
⏺ staticmethod не получает ссылок под капотом, это просто функция связанная контекстом с классом. Используется редко и часто завуалированно
▶️ Смотреть на YouTube
Посмотрим в первом приближении на атрибуты класса, как с ними работать, для чего нужны декораторы classmethod и staticmethod
⏺ LEGB – правило продолжает действовать для простых имен переменных и их поиска
⏺ Для self атрибутов поиск идет сначала в объекте, потом в классе, затем у предков OCP(object-class-parent). То есть через self можно достучаться как к обычным методам/атрибутам, так и к классовым, статичным
⏺ Если через self пытаться поменять неизменяемый атрибут (строка) класса, то будет создана локальная копия, ее не увидят другие объекты класса
⏺ Если менять через self изменямый атрибут класса (список), то он изменится для всех объектов класса
⏺ cls – это ссылка на класс (не объект!), питон передает его под капотом. cls = Class
⏺ classmethod используется для работы с атрибутами класса и с другими методами класса. Часто используется для конструирования готовых объектов
⏺ staticmethod не получает ссылок под капотом, это просто функция связанная контекстом с классом. Используется редко и часто завуалированно
▶️ Смотреть на YouTube
⚙️ Unstructured для предварительной обработки текста
ℹ️ Unstructured - это доступная библиотека Python для легкого извлечения текста из документов. Она упрощает очистку текста, обрабатывая все, от удаления маркеров до управления эмодзи и языкового перевода.
🔗 Ссылочка на доку
ℹ️ Unstructured - это доступная библиотека Python для легкого извлечения текста из документов. Она упрощает очистку текста, обрабатывая все, от удаления маркеров до управления эмодзи и языкового перевода.
🔗 Ссылочка на доку
Использование модуля os.path и pathlib для удобной работы с путями
Когда вы работаете с файлами и директориями, важно уметь легко и безопасно манипулировать путями к файлам. Модули os.path и pathlib в Python предоставляют удобные методы для работы с путями, объединения их, получения имени файла и расширения, а также проверки существования файла или директории.
Использование os.path и pathlib помогает сделать код более безопасным и понятным, упрощая работу с путями и снижая вероятность ошибок, связанных с неправильным использованием путей к файлам.
Когда вы работаете с файлами и директориями, важно уметь легко и безопасно манипулировать путями к файлам. Модули os.path и pathlib в Python предоставляют удобные методы для работы с путями, объединения их, получения имени файла и расширения, а также проверки существования файла или директории.
Использование os.path и pathlib помогает сделать код более безопасным и понятным, упрощая работу с путями и снижая вероятность ошибок, связанных с неправильным использованием путей к файлам.