Выпущен второй из семи запланированных альфа-релизов – Python 3.13.0 alpha 2. Альфа-релизы предназначены для тестирования новых функций и исправлений, и не рекомендуются для использования в продакшене. В этом релизе, в соответствии с PEP 594, было удалено множество устаревших модулей, классов и функций стандартной библиотеки. Следующий пререлиз (3.13.0a3) запланирован на 19 декабря 2023 года. |
В подборке «11 прикольных Python-библиотек» есть и полезные, и просто прикольные штуки. Вот, к примеру, библиотека Rich, которая обеспечивает множество всяких красивостей в терминале: - подсветку синтаксиса;
- форматирование текста;
- поддержку эмодзи, маркдауна и азиатских языков;
- вывод результатов в колонках;
- рисование таблиц и индикаторов прогресса.
|
Rich добавит красок в жизнь вашего терминала |
Еще одна классная вещь – Asciimatics, которую наверняка оценят поклонники выдающегося ИТ-сериала «Остановись и гори». С помощью Asciimatics можно создавать ностальгическую графику в стиле 80-х: - интерактивные текстовые интерфейсы;
- анимацию;
- игры.
Впечатляющие примеры – в репозитории проекта. |
Линтер Ruff продолжает завоевывать новых поклонников. В этом туториале подробно рассказывается о настройках и использовании линтера в VSCode и Jupyter Notebooks. | Ruff работает в 10-100 раз быстрее других линтеров |
В этой подборке однострочников есть интересный способ превращения вложенного списка в обычный с помощью sum(): |
>>> flatten_list = sum([[1, 2], [3, 4], [5, 6]], []) >>> print(flatten_list) [1, 2, 3, 4, 5, 6] |
Традиционный способ превращения вложенного списка в обычный выглядит так: |
>>> nested_list = [[1, 2], [3, 4], [5, 6]] >>> print([i for sublist in nested_list for i in sublist]) [1, 2, 3, 4, 5, 6] |
«Гайд по очередям в Python» рассказывает о структуре данных очередь (queue) и о разных способах ее реализации в Python. В очереди элементы обрабатываются в порядке их добавления – first in, first out (FIFO), точно так же, как очередь людей в банке – кто пришел первым, того обслуживают первым. |
Обслуживание в порядке FIFO очереди |
Основные операции с очередью: - Enqueue – добавляет элемент в конец;
- Dequeue – удаляет первый элемент;
- Peek или Front – показывает первый элемент без удаления;
- IsEmpty – проверяет, есть ли в очереди какие-нибудь элементы или она пуста.
В Python очередь можно реализовать тремя способами: - С использованием списков list. Просто, но может быть неэффективно для больших объемов данных.
- С применением deque из модуля collections – очень эффективный двусвязный список. Поддерживает быстрые операции enqueue и dequeue.
- С помощью модуля queue – реализация разных типов потокобезопасных очередей (FIFO, LIFO, с приоритетами).
В статье более подробно рассматриваются особенности каждого подхода, приводятся примеры кода, описываются дополнительные возможности: двусторонние очереди в deque, очереди с приоритетами, кольцевые очереди. «Гайд по хеш-таблицам» подробно рассказывает о реализации этой структуры данных в Python в виде словарей: - Хеш-таблицы – это структуры данных, позволяющие эффективно хранить и извлекать данные на основе пар «ключ-значение».
- Основная идея хеш-таблиц в том, что ключ преобразуется в индекс массива с помощью хеш-функции. Это позволяет быстро находить значения по ключам.
- Хорошая хеш-функция равномерно распределяет ключи по массиву, минимизируя коллизии (когда разные ключи преобразуются в один индекс).
- Операции вставки, удаления и поиска в хеш-таблицах имеют временную сложность O(1) в среднем случае. Это очень эффективно, и часто упрощает решение сложных задач на собеседованиях и олимпиадах.
|
🤖 Генеративный ИИ, машинное обучение и анализ данных |
В статье «7 ML-репозиториев, которые используют 1% топ-разработчиков» собраны ссылки на суперполезные инструменты для машинного обучения, неизвестные широкой публике: - CleverCSV – библиотека для работы с CSV-файлами. Умеет автоматически определять формат CSV и обрабатывать файлы с ошибками.
- skll – инструмент для упрощения машинного обучения на основе scikit-learn. Позволяет эффективно проводить эксперименты с кросс-валидацией.
- BanditPAM – алгоритм кластеризации k-medoids, работающий за линейное время. Лучше масштабируется на больших данных по сравнению с k-means.
- recordlinkage – библиотека для сопоставления и дедупликации записей в разных датасетах. Поддерживает алгоритмы обучения с учителем и без учителя, имеет несколько встроенных датасетов.
- dragnet – извлечение контента веб-страниц без ненужных элементов типа рекламы и навигации.
- spacy-stanza – интеграция библиотеки Stanford NLP в spaCy для задач обработки естественного языка.
- Littleballoffur – набор методов для выборки графов и сетей, включая сэмплинг снежного кома. Пригодится для работы с большими графами.
|
🎓 Бесплатные курсы по ИИ от Microsoft |
Сотрудники Microsoft подготовили новый курс «Генеративный ИИ для начинающих». В каждом из 12 уроков есть: - видеообзор темы;
- текстовая лекция;
- Jupyter Notebook с примерами кода;
- задание для самостоятельной работы;
- ссылки на полезные ресурсы.
Ранее компания публиковала бесплатные курсы для начинающих по: |
📜 Туториалы по ИИ-разработке |
«Как (не) надо проектировать REST API» объясняет правила и рекомендации для создания API, с которыми будет удобно работать: - REST не требует скрупулезного следования определенным правилам, главное – создать полезный и практичный API.
- При использовании REST коллекции ресурсов следует описывать во множественном числе.
- В URL не следует добавлять лишние сегменты, если они не помогают идентифицировать ресурс.
- В конце URL не нужно добавлять расширение .json.
- Ответ от сервера должен быть в формате объекта, а не массива.
- Вместо словарей, следует возвращать массивы объектов.
- Вместо числовых идентификаторов ресурсов, надо использовать строки.
- Не стоит возвращать 404 при запросе к несуществующему идентификатору.
- Для идентификации типа ресурса необходимо использовать префиксы.
- Необходимо придерживаться единой структуры данных для всех ресурсов.
- Нужно использовать стандартизированный формат ошибок.
- Следует предусмотреть возможность повторения операций без изменения результатов (идемпотентность).
- Даты и время следует представлять в формате ISO8601.
Туториал «Полнотекстовый поиск с помощью Django Watson» на примере блога покажет, как добавить поисковую функциональность в приложение на Django. Среди преимуществ Django Watson: - Совместимость со всеми базами данных. Для поиска в PostgreSQL и MySQL используются встроенные возможности этих баз, для других БД применяются регулярные выражения.
- Продвинутые возможности – стемминг, интеграция с DRF, фильтрация результатов, автообновление индекса, ранжирование, поиск по всем вариантам и частям слов, игнорирование стоп-слов, назначение весов.
*** В честь черной пятницы с 24 по 30 ноября мы запустили масштабную распродажу на все курсы Proglib Academy. 👀 Советуем обратить внимание на самые популярные курсы: На этом все, до встречи через неделю! |
|
|
Вы получили это письмо, потому что подписались на нашу рассылку. Если вы больше не хотите получать наши письма, нажмите здесь.
|
|
|
|