Все потоки
Поиск
Написать публикацию
Обновить
458.96

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Functools – сила функций высшего порядка в Python

Время на прочтение8 мин
Количество просмотров37K

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

Кэширование

Давайте начнем с самых простых, но довольно мощных функций модуля functools. Начнем с функций кэширования (а также декораторов) - lru_cache, cache и cached_property. Первая из них - lru_cache предоставляет кэш последних результатов выполнения функций, или другими словами, запоминает результат их работы:

Читать далее

Как устроен Domain-Driven Design

Время на прочтение13 мин
Количество просмотров58K

Многие проекты на Django начинаются просто: есть база данных и к приложению, которое крутится на сервере, идут обращения. Например, так начиналась Dodo IS (информационная система компании Додо Пицца, где работал автор сегодняшней статьи). Но если использовать Django из коробки, можно натворить много бед и встретить пачку антипаттернов. Возможно, вы встречали такое на старых legacy-проектах.

Евгений Пешков развивает сообщество DDD-практиков, рассказывая, какие проблемы решает Domain-Driven Design (предметно-ориентированное проектирование) в современном мире. На конференции Russian Python Week 2020 он выступил с рассказом об этом. Кстати, 19 августа пройдет встреча DDDevotion-сообщества, присоединяйтесь, будем о чем поговорить.

В сегодняшней статье будет его рассказ про то, как устроен Domain-Driven Design и какие инструменты использует, чтобы наиболее точно описать требования бизнеса и сам бизнес.

Читать далее

В шоке от цен на авиабилеты по России: как летать дешевле

Время на прочтение10 мин
Количество просмотров40K

Вы продаете билетов на самолеты? - Нет, только показываю. - Красивое…

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

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

Читать далее

Как я боролся с анти-читом

Время на прочтение8 мин
Количество просмотров8.4K

Насколько мне известно, в большинстве русскоязычных тестировщиков скорости печати используется метрика CPM, наткнувшись на следующее видео мне стало интересно посмотреть на свои показатели метрики WPM.

По окончанию тестирования пользователю показывается результат написанный на картинке. И мне она показалась не совсем корректной.

Читать далее

Поиск адресов в «испорченных» данных

Время на прочтение10 мин
Количество просмотров5.9K

Введение

Для проведения проверки мне необходимо было установить адреса нескольких сотен объектов недвижимости. Проблема в том, что адреса были написаны в разных частях документов, документы имели различные форматы, и сам адрес также мог быть написан разнообразными способами.  

Да, существует возможность использовать для данной задачи различные библиотеки и сервисы, но источники данных с информацией об этих объектах должны быть упорядочены и однородны. Можно ли используя минимум ресурсов решать подобные задачи? Можно! Рассмотрим решение на основе Python 3, Pandas и нескольких библиотек для конвертации файлов в датафреймы.

Читать далее

Владивосток, оползни и логистическая регрессия

Время на прочтение8 мин
Количество просмотров7.9K

27-28 августа во Владивостоке и Приморском крае произошли массовые оползни. К счастью, обошлось без жертв. Однако, материальные потери оказались существенными: разбитые машины, перекрытые дороги, повреждённые здания и детские площадки. Оползни сошли в момент прохождения циклона с обильными дождями. Мы робко предположили, что "осадки виновны", распаковали методы классической статистики и приступили к исследованию.

Читать далее

Как превратить книгу о Гарри Поттере в граф знаний

Время на прочтение12 мин
Количество просмотров11K

Обработка естественного языка — это не только нейронные сети, а данные — это не только строки, числа и перечисления. Область работы с данными простирается намного дальше. К старту флагманского курса по Data Science представляем вашему вниманию перевод из блога разработчиков графовой базы данных neo4j о том, как при помощи SpaCy и Selenium извлечь из книги граф взаимоотношений героев. Подробности и код, как всегда, под катом.

Читать далее

Заглянем в будущее Python

Время на прочтение12 мин
Количество просмотров23K

На конференции Russian Python Week 2020 мы пообщались с двумя людьми, от которых непосредственно зависит будущее Python. 

На наши вопросы ответили Core-developer community on Google Cloud Дастин Инграм и Director at Python Software Foundation Кэрол Виллинг. Их ответы о том, чего не хватает языку и как он будет развиваться дальше, вы узнаете, заглянув под кат. 

Читать далее

Cross-Fold Generation или как генерировать длинные последовательности с ruGPT-3

Время на прочтение11 мин
Количество просмотров3K

RuGPT-3 - AI-модель для русского языка, которая умеет писать тексты. Она может генерировать истории, стихи и новости, которые люди не могут отличить от настоящих. Похожая модель лежит в основе Балаболы от Яндекса. В этой статье мы описываем способ генерации длинных текстов без потери смысла на примере модели ruGPT-3 Large. Мы назвали этот метод Cross-Fold Generation. С ним можно генерировать последовательности более 2000 токенов с сохранением идеи текста.

Читать далее

6 рекомендаций по определению метода __init__

Время на прочтение4 мин
Количество просмотров18K

Основным краеугольным камнем Python как объектно-ориентированного языка программирования является определение связанных классов для управления и обработки данных. Когда мы создаем класс, первым методом, который определяем является метод инициализации __init__. Если вы примените следующие рекомендации, то тот, кто будет читать ваш код, лучше поймет механику работы всех объектов экземпляра класса. В этой статье я хочу рассказать вам о рекомендациях по определению метода __init__.

Читать далее

3D моделирование в Python

Время на прочтение21 мин
Количество просмотров94K

Допустим, вам потребовалось на языке программирования python, построить трёхмерную модель некоторого объекта, затем визуализировать его, или подготовить файл для печати на 3D принтере. Существует несколько библиотек, помогающих в решении этих задач. Поговорим о том, как строить трёхмерные модели из точек, граней и примитивов в python. Как выполнять элементарные приемы 3D моделирования: перемещение, поворот, объединение, вычитание и другие.

Читать далее

Не обижайте котиков и собачек, а ищите их среди… питонов

Время на прочтение5 мин
Количество просмотров1.3K

Некоторые размышления о сложностях машинного обучения, базирующиеся на практическом опыте и полёте фантазии

Читать далее

Как выглядит эффект бэггинга на смещение и дисперсию

Время на прочтение12 мин
Количество просмотров4.4K

Часто суть статей о бэггинге сводится к тому, что вы обучаете множество деревьев решений на различных частях данных и усредняете прогнозы, чтобы получить окончательный прогноз, который улучшается из-за того, что дисперсия случайного леса меньше дисперсии одного дерева решений. Тексты с таким заключением содержат отличные демонстрации, код и много других мыслей. Но криптоаналитику и дата-сайентисту, доктору Роберту Кюблеру, переводом статьи которого мы делимся сегодня, часто не хватает хороших выкладок о причине, почему бэггинг — хорошая идея, а ещё не хватает демонстраций уменьшения дисперсии на реальных данных. Восполняем этот пробел к старту нашего флагманского курса по Data Science.

Читать далее

Ближайшие события

Собеседование на позицию Data Engineer в Х5: чего ждать и как лучше подготовиться

Время на прочтение4 мин
Количество просмотров18K

В X5 Group активно развивают цифровые продукты, построенные на основе  больших данных, использующие сложную аналитику и машинное обучение, такие как прогнозирование спроса, управление ассортиментной матрицей магазинов, предсказание отсутствия товаров на полках, динамическое ценообразования и т.п. 

Для разработки продуктов формируются автономные, кросс-функциональные команды, которые имеют минимум внешних зависимостей и могут двигаться вперед с максимальной скоростью. Одной из ключевых ролей в таких командах является роль Data Engineer.

Читать далее

DataScience Digest — 12.08.21

Время на прочтение3 мин
Количество просмотров1.8K

Приветствую всех!

Встречайте свежий выпуск дайджеста полезных материалов из мира Data Science & Machine Learning подготовленный командой Data Phoenix и не забывайте подписываться на наш Telegram-канал.

Напоминаю, что 17 августа буду проводить вебинар "The A-Z of Data: Introduction to MLOps". В его рамках мы рассмотрим, что такое MLOps, основные принципы и практики, лучшие инструменты и возможные архитектуры. Мы начнем с простого жизненного цикла разработки ML решений и закончим сложным, максимально автоматизированным, циклом, который нам позволяет реализовать MLOps. Детали и обязательная предварительная регистрация здесь.

Читать далее

Парсинг Instagram в промышленных масштабах

Время на прочтение28 мин
Количество просмотров42K

В декабре 2020 года, завершив работать в научном институте, я увлёкся задачей добычи данных из соцсетей, в частности из Инстаграма. Прежде я работал только с готовыми данными, поэтому мне всегда было интересно, как эти данные можно добывать. За несколько дней до Нового Года я написал достаточно базовую статью про то как парсить Инст. В первых числах января мне написал заказчик и попросил сделать для него масштабный парсер инстаграма, который был бы способен делать более 10.000 запросов в сутки.

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

В рамках данной статьи я хочу рассказать про путь развития своего Pet-Project в потенциально мощный и серьёзный инструмент. Впереди вас ждёт увлекательное путешествие от хранения данных в простых Json-ах на жестком диске сервера, до облачной базы данных и автоматической инициализации cron расписания запуска процессов внутри докер контейнера, поехали!

Поехали!

Анализ аудио. Идентификация голоса

Время на прочтение8 мин
Количество просмотров18K

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

Перед нашей командой стояла задача проанализировать большое число телефонных звонков от клиентов, с целью выявления фактов псевдодоверительного управления, т.е. тех случаев, когда один и тот же человек представляет по телефону интересы нескольких клиентов. Суммарный объем аудиоданных составлял более 500Гб, а общая продолжительность 445 дней (11 тыс. часов). Естественно, прослушать все записи силами нескольких человек невозможно, поэтому решением задачи мы видели автоматическую кластеризацию похожих голосов с последующим анализом полученных групп.

В качестве модели для получения векторов голоса была выбрана модель SincNet. Но прежде чем перейти к описанию примененного метода давайте рассмотрим какие вообще существуют подходы к извлечению признаков из звука и почему мы остановились именно на SincNet.

Пожалуй, самым простым подходом в обработке звука является амплитудно-временно анализ.

Читать далее

Моя эпопея настройки автодеплоя: ошибки и открытия

Время на прочтение4 мин
Количество просмотров2.8K

С развитием моей веб-студии и ростом количества проектов, мне, как руководителю проектов, задачи стало выполнять сложнее. Сложнее стало и успевать за всем следить: что-то удалось делегировать, но все-таки некоторые задачи остались на мне и требовали вмешательства, а то и непосредственного участия. Например,  размещение исходного кода на сервере и загрузка правок все еще за мной. 

Вы сейчас закономерно заметите: “А чего ж ты сразу не сделал автодеплой? Там же все просто!”. 

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

Да-да, пайплайны падают - карван (деплой) останавливается, теперь знаю. Да и тогда тоже знал, но что-то меня останавливало... И вот, когда работы, связанной с загрузкой изменений на сервер стало намного больше, чем я мог переварить (у некоторых проектов по 3 окружения), я решился на автоматизацию. 

Каков логичный первый шаг, если хочется сделать быстрее и не погружаться в литературу очень глубоко? 

Читать далее

Знакомство с Panda Gym

Время на прочтение7 мин
Количество просмотров4K

К старту курса о машинном и глубоком обучении знакомим читателей с panda-gym — это библиотека с открытым исходным кодом, предоставляющая среду обучения с подкреплением интегрированному с Gym роботу Franka Emika Panda. Поддерживаются среды игр Atari, настольных игр, физические симуляции в 2D и 3D и многое другое. Это позволяет обучать несколько агентов, сравнивать их или разрабатывать новые алгоритмы машинного обучения для задач обучения с подкреплением. Подробности, как всегда, под катом, а в конце вы найдёте ссылку на блокнот Google Colab.

Читать далее

Автоботы, трансформируемся: как быстро и недорого победить 400 систем-десептиконов

Время на прочтение9 мин
Количество просмотров2.2K

Привет, Хабр!

Меня зовут Иван Маслов, я работаю в Страховом Доме ВСК на должности руководителя направления RPA. Расскажу Вам об опыте использования роботов, и о том, как упростить работу с legacy системами. Уверен, будет интересно всем: и тем, кто скептически относится к роботам, и тем, кто хочет побольше о них узнать. Подробности под катом.

Читать далее

Вклад авторов