Python академия
Open in Telegram
Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter
Show more7 092
Subscribers
-224 hours
-117 days
-3530 days
Posts Archive
7 092
Резюме статьи
Gensim — отличный пакет Python для большого количества задач нейролингвистического программирования (НЛП). Он включает в себя довольно надежную функцию резюмирования, которой достаточно легко пользоваться. Она реализует разновидность алгоритма TextRank.
Для использования этой функции нам нужна лишь одна строчка кода
Подписывайтесь на канал 👉@pythonofff
7 092
Подключаемся к серверу по ssh
Пакет paramiko позволяет устанавливать соединение с удаленными машинами по протоколу SSH2 и производить там все те же операции, если бы вы подключались через, например, утилиту ssh на линуксе.
Использовать модуль достаточно просто, пример основный методов на картинке выше. Кстати, интересный факт, Paramiko — это сочетание слов "параноик" и "друг" на языке эсперанто.
Устанавливается пакет привычным образом через пакетный менеджер pip. А документацию можете изучить тут.
Подписывайтесь на канал 👉@pythonofff
7 092
Как создавать списки в Python
Чтобы создать новый список, сначала дайте ему имя. Затем добавьте оператор присваивания (=) и пару квадратных скобок. Внутри скобок добавьте значения, которые должны содержаться в списке.
Подписывайтесь на канал 👉@pythonofff
7 092
To recommend or not to recommend?
Бесплатный урок по рекомендательным системам от OTUS для самых продвинутых. На нём разберем продвинутые приемы и кейсы для практикующих Data Scientist-ов, желающих повысить свой профессиональный уровень до Middle/Senior🔥
Вебинар пройдет 16 ноября в 18:00 в преддверии старта онлайн-курса «Machine Learning. Advanced» от OTUS. Это шанс протестировать формат обучения и познакомиться с Марией Тихоновой, руководителем курсов по ML в OTUS и специалистом по анализу данных в команде AGI NLP в Сбере.
🔖промокод BLACKFRIDAY22 скидка -20% на курс до 30.11.2022
👉Регистрация: https://otus.pw/XMht/
7 092
Работаем с zip архивами
Для упрощения работы с zip файлами можно использовать встроенный модуль zipfile. Если кто не помнит, то zip файл – это архив, содержащий сжатые файлы.
Просмотреть содержимое архива можно с помощью функции printdir, а извлечь все файлы можно вызвав extractfile.
Также этот модуль позволяет создавать свои zip архивы, но мы решили не усложнять пример, поэтому просто прикладываем ссылку на документацию.
Подписывайтесь на канал 👉@pythonofff
7 092
Как индексируются списки в Python
Списки поддерживают порядок элементов.
Каждый элемент имеет собственный порядковый номер — индекс, который можно использовать для доступа к самому элементу.
Индексы в Python (и любом другом современном языке программирования) начинаются с 0 и увеличиваются для каждого элемента в списке.
Подписывайтесь на канал 👉@pythonofff
7 092
Константы пакета string
Встроенный модуль string предоставляет расширенный функционал для работы со строками. Про форматируемые шаблоны из этого пакета мы уже рассказывали ранее.
Сейчас поговорим про константы этого модуля. Из интересного стоит выделить ascii_letters, punctuation, digits и whitespace — символы ascii, знаки пунктуации, цифры и пробельные символы.
Применение подобных констант может быть не очевидно с первого взгляда. Но подобные значения часто используются, например, в работе с алфавитом или в условном генераторе паролей.
К тому же часто бывает, что разработчики делают костыли и создают свои собственные константы в коде вместо того, чтобы импортировать уже готовые из модуля string.
Подписывайтесь на канал 👉@pythonofff
7 092
Делаем ошибки более читаемыми
В Python есть удобный модуль pretty_errors, который делает стандартный вывод исключений и их traceback более удобным для чтения и красивым в целом.
Установить его можно через пакетный менеджер pip. А для того, чтобы он заработал, достаточно импортировать его в ваш код.
Как результат, вывод ошибок в вашей программе будет выглядеть более читаемым. Более того, разные части вывода будут помечаться разным цветом вместо монотонного серого цвета.
Также модуль можно модифицировать, указав параметры в конфиге. Подробнее можете почитать в документации модуля.
Подписывайтесь на канал 👉@pythonofff
7 092
Enumerate
В традиционных языках программирования вам нужна переменная цикла для перебора различных значений контейнера. В Python это упростили: вы можете получить доступ к переменной цикла вместе со значением итерируемого объекта. Функция enumerate(x) возвращает две итерируемые переменные. Одна из них изменяется в диапазоне от 0 до len(x) - 1, а другая представляет собой элементы x.
Подписывайтесь на канал 👉@pythonofff
7 092
Превращаем PDF в текст
Думаю, все периодические работают с PDF-документами. И зачастую это ручная и скучная работа. Но Python может автоматизировать даже такую рутинную задачу.
Модуль pdftotext создан именно для работы с документами в PDF формате. Устанавливается он через пакетный менеджер pip, а использовать его проще простого. Все основные операции представлены на картинке выше.
Кстати, здесь ещё интересно то, что исходный код модуля написан на C++. Поэтому есть небольшая вероятность, что придётся повоевать с зависимостями.
Подписывайтесь на канал 👉@pythonofff
7 092
Удалённая работа и фриланс становятся всё более популярными. Рынок заполнился горе-фрилансерами, которые демпенгуют и забирают себе заказы.
Хочешь научиться работать грамотно, развиваться и забирать самые хорошие заказы?
Подписывайся на блог о правильных подходах в Freelance, аутсорсинге и удалёнке https://t.me/+TnC6aqQkP9xjMDBi
Также мы будем скидывать заполнившим анкету фрилансерам заказы от проверенных заказчиков. Например сейчас есть много заказов для программистов 😏
Ссылка на канал: https://t.me/+TnC6aqQkP9xjMDBi
7 092
Zip
Функция zip() позволяет создавать итерируемый объект, состоящий из кортежей. Zip принимает в качестве аргумента несколько последовательностей (m1, m2,…, mn), в результате чего создается итерируемый объект, состоящий из i кортежей. В каждом кортеже содержится по одному элементу из каждого контейнера. Таким образом, i-й кортеж представляет собой(m1i, m2i,…, mni)
Подписывайтесь на канал 👉@pythonofff
7 092
Протоколы
Термины "протокол итератора" или "протокол дескрипторов" уже привычны и используются давно. Но теперь можно описывать протоколы в виде кода и проверять их соответствие на этапе статического анализа.
Протокол описывается как обычный класс, наследующийся от Protocol. Он может иметь методы (в том числе с реализацией) и поля. Реальные классы, реализующие протокол могут наследоваться от него, но это не обязательно, как показано в примере.
Хоть это и не совсем интерфейсы, но все же классная штука. Еще важно, что протоколы, как и все остальные фишки аннотаций типов, используются в основном со статически типизированным mypy.
Подписывайтесь на канал 👉@pythonofff
7 092
Контекст функций
Язык Python допускает применение вложенных функций, в которых вы можете определить внутреннюю функцию внутри внешней. В Python есть несколько замечательных свойств, связанных со вложенными функциями.
Подписывайтесь на канал 👉@pythonofff
7 092
Избегайте циклы с коллекциями
Представим задачу: требуется создать новый список, элементами которого будут являться квадраты чисел другого списка. Большинство сразу же напишут цикл for.
Но такой подход займет как минимум три строчки: объявление новой переменной, создание цикла и кода внутри него. Более того, также снижается скорость работы скрипта.
В коде выше мы привели две достойные альтернативы – генератор списка и функция map. В обоих вариантах не только код становится лаконичнее, но и заметно повышается производительность.
Подписывайтесь на канал 👉@pythonofff
7 092
Декораторы в Python
Декораторы — мощный инструмент в Python. Вы можете их использовать для тонкой настройки работы класса или функции. Декораторы можно считать функцией, которая применена к другой функции. Чтобы определить функцию-декоратор для декорируемой функции, используется знак @ и после него название функции. Из этого следует, что декоратор принимает в качестве аргумента функцию, которою он декорирует.
Рассмотрим функцию square_decorator(), которая в качестве аргумента принимает функцию и в результате также выдают функцию.
Подписывайтесь на канал 👉@pythonofff
7 092
Недавно в Yandex Cloud объявили об обновлении Yandex DataSphere. Команда не просто запустила новый UI, но создала полноценное рабочее место для дата-сайентиста с инструментами для командной работы. Теперь в сервисе:
🔹 проект — главная сущность, с которой работает дата-сайентист — им можно управлять, не переходя в среду разработки;
🔹 интеграция с кластерами Data Proc, которые обеспечивают расчёт в MapReduce-парадигме;
🔹 эксплуатация моделей — быстрый переход в инференс: после обучения можно нажатием нескольких кнопок выводить модель в продакшн;
🔹 дашборд здоровья сервиса — отслеживает состояние созданных сервисов, показывает график нагрузки, состояние серверов, занятые ресурсы;
🔹 сообщества — позволяют объединять проекты разных специалистов и удобно организовать командную работу в больших компаниях.
Подробнее узнайте в статье.
Попробуйте возможности нового Yandex DataSphere в деле! Начать работу ➡️
7 092
Функции только с позиционными параметрами
Если с помощью inspect посмотреть на то, как объявлена встроенная функция float, то увидим, что есть входный параметр x и еще какой-то непонятый слэш.
Однако при попытке вызвать функцию и передать туда именованный аргумент, а не позиционный, получим исключение. А если передать аргумент, явно не указывая имя параметра, то все работает.
Такое поведение как раз задает тот слэш. Параметры, записанные до него, можно передать только как позиционные. После него – как угодно, все будет работать стандартно.
Подписывайтесь на канал 👉@pythonofff
7 092
Пример генератора данных из библиотеки Keras
Одно из типичных применений генераторов — это использование генератора данных в библиотеке Keras. Причина, по которой он полезен, заключается в том, что мы не хотим хранить все данные в памяти, а хотим создавать их на лету, когда это необходимо в процессе обучения. Дело в том, что в Keras модель нейронной сети обучается батчами, поэтому генератор должен выдавать строго определенные пакеты данных.
Подписывайтесь на канал 👉@pythonofff
