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

Python *

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

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

ABBYY NeoML 2.0: Python и многое другое

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


Прошел почти год с тех пор, как мы опубликовали на GitHub библиотеку для машинного обучения NeoML. О чем, конечно же, была статья на Хабре. Мы обещали поддерживать и развивать ее. Свое обещание мы сдержали, и на днях свет увидела вторая версия библиотеки!

С первой версии в жизни проекта произошло много интересного: мы продолжили разработку на GitHub, освоили Azure DevOps для регулярных сборок, поддержали новые платформы, добавили немало новых и не столь новых, но очень нужных алгоритмов, добавили производительности и — самое главное — сделали для библиотеки Python интерфейс! Собственно, после окончания работ над Python оберткой библиотека и получила номер версии 2.0.

Ниже я подробнее расскажу о том, как это все происходило.
Читать дальше →

EDA становится проще, если есть SWEETVIZ

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

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

Использование библиотеки

Установить библиотеку можно с помощью менеджера пакетов pip следующей командой:

Читать далее

Что вернёт эта функция в Python?

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

Всем привет! Сегодня хотел бы обсудить очень простой, но, на мой взгляд, интересный вопрос по Python и его внутреннему устройству. Как вы думаете, что вернёт эта функция:

def foo():
try:
return 1
finally:
return 2

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

Читать далее

Нейрозапятые, или как мы оставили своих редакторов без работы (ну почти)

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

Всем привет, меня зовут Владислав Соболев – ML-инженер в компании “БАРС Груп”. Сегодня я хотел бы рассказать о том, зачем и как мы расставляем знаки препинания в текстах, сравним аналоги, и посмотрим на то, как устроена работа инструмента, который мы написали, чтобы обучать такого рода модели (ссылочка в самом конце). Начнем!

У нас в компании есть ряд ML-проектов, внутри которых используется анализ текста, в том числе и надиктованного голосом. Мы командой долго думали над тем, как можно реализовать данные проекты.

В итоге пришли к выводу, что проще всего для наших целей проводить лингвистический анализ текста искать в нём слова-действия, такие как "сгруппируй", "покажи", определять связи и зависимости между словами, искать ключевые слова, ранжировать их. И на основе всех этих данных – взаимодействовать с сервисами.

Читать далее

Python-скрипт для импорта банковских расходов в Splitwise

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

Если для вас важен вопрос ведения личного или семейного бюджета, или если вы часто ездите в совместные поездки с друзьями, то вы либо уже слышали про Splitwise, либо вам может быть полезно про него услышать. Splitwise - это довольно удобный сайт + приложения для iOS и Андроид, которые позволяют вести учёт совместных расходов.
В статье я рассказываю про написанную на коленке программу, которая позволяет мне упростить внесение своих трат, используя выгрузку операций из интернет-банка в формате CSV.

Читать далее

Автоматизация машинного обучения

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

Datascience – это не только fit-predict

Представим, что вы начали работать в компании, которая производит однообразные операции с бесконечными таблицами. Например, в крупном ретейлере или у ведущего оператора связи. Ежедневно перед вами ставят задачу выяснить, останется ли клиент с вами или хватит ли товара на полках до конца недели. Алгоритм выглядит просто. Вы берете выборку, изучаете бесконечные ряды признаков, удаляете мусор, генерируете новые признаки, собираете сводную таблицу. Подаете готовые данные в модель, настраиваете параметры и с нетерпением ждете заветных цифр итоговой метрики. Это повторяется день за днем. Затрачивая каждый день всего 60 минут на генерацию фич или подбор параметров, за месяц вы израсходуете минимум 20 часов. Это, без малого, целые сутки, за которые можно выполнить новую задачу, обучить нейросеть или прочесть несколько статей на arxiv’e.

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

Читать далее

22 полезных примера кода на Python

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

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

Некоторые из примеров вы могли уже видеть ранее, а другие будут новыми и интересными для вас. Все эти примеры легко запоминаются.
Читать дальше →

Ищем уязвимости в Python-коде с помощью open source инструмента Bandit

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


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

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

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

В этом туториале мы рассмотрим, как даже в очень простом коде могут появиться уязвимости и как использовать утилиту Bandit для их поиска.
Читать дальше →

Управляем звуком ПК от активности пользователя с помощью Python

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

Прочитав много статей про "распознавание лиц всего за n-ое количество строк" (например: раз, два, или даже видео), я решил повторить данные эксперименты, но уже под свою задачу. А задача очень простая - если пользователь работает за ПК (сидит перед веб-камерой, управляет мышкой), то системная громкость равна 50%, иначе если он отошёл/бездействует - выставляем 100%, чтобы не пропустить все уведомления с ПК.

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

Читать далее

DataScience Digest — 17.06.21

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

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

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

Читать далее

Jupyter в Visual Studio Code — июньский релиз

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

Мы рады сообщить, что стал доступен июньский релиз расширения Jupyter для Visual Studio Code. Если вы работаете с Python, мы рекомендуем загрузить расширение Python из Marketplace или установить его прямо из галереи расширений в Visual Studio Code. Если у вас уже установлено расширение Python, вы также можете получить последнее обновление, перезапустив Visual Studio Code. Узнайте больше о поддержке Python в Visual Studio Code в документации.

Подробнее о самых интересных новинках под катом.

Читать далее

Обучение с подкреплением в Super Mario Bros. Сравнение алгоритмов DQN и Dueling DQN

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

Этой весной Питерская Вышка и JetBrains впервые провели проектную смену для старшеклассников — Школу по практическому программированию и анализу данных. В течение пяти дней 50 участников со всей страны работали над групповыми проектами по машинному обучению, NLP, мобильной и web-разработке.  

Первое место заняла команда Deep Q-Mario — ребята создали нейронную сеть, которая использует reinforcement learning для обучения агента играть в Super Mario Bros. В этом посте они рассказывают, какие алгоритмы использовали и с какими проблемами столкнулись (например, в какой-то момент Марио просто отказался прыгать).

Читать далее

Как я пытался придумать новый подход к изучению алгоритмов через интерактивные визуализации

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

Представьте человека, который изучает алгоритмы. Чтобы понять как они работают, приходится разбираться в их коде и представлять, как компьютер будет его выполнять. Это странно — почему мы должны учиться думать как компьютер, вместо того, чтобы заставить его помогать нам? Какая-то сильная технозависимость.

На мой взгляд, потеть должна машина, а человек учиться, не выворачивая мозги наизнанку. Поэтому я подумал, а почему бы не визуализировать работу алгоритмов? Визуализации помогли бы не закапываться в код, а наглядно показали бы как работают алгоритмы и позволили бы понять их. Что у меня получилось — читайте в этой статье.

Читать далее

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

Почему в X5 Group выделили Data Engineering в отдельный центр компетенций

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

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

Читать далее

Создание таблицы субъектов РФ в формате Geography T-SQL (SQL Server)

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

В процессе подготовки инструмента для автоматического определения субъекта РФ по точке (тип данных Point) потребовалась таблица вида "Субъект РФ" - "geography::Object".

Предыстория: есть большой автопарк (>1000 ТС), который отправляет свои координаты на сервер в составе данных "Машина" - "Момент времени UTC" - "geography::Point". На сервере есть вторая таблица определенных событий по транспортному средству в составе данных "Машина" - "Момент времени (местное время)" - "Событие". Две задачи - перевести время во второй таблице из местного в UTC и далее использовать обе таблицы для дальнейшей автоматизации аналитики по событиям ТС в привязке к субъектам РФ.

Поиск в гугле по фразе "geojson субъекты РФ" привел на страницу https://gist.github.com/max107/6571147 - на ней в формате JSON перечислены субъекты и списки точек координат - границ.

Если вы пробежитесь по тексту, то структура этого JSON такая: на верхнем уровне один блок - один субъект. На следующем уровне вниз - блоки с нумерацией от 0 до, кажется, 19. Это означает, что субъект состоит из нескольких областей и каждая из них - это отдельный полигон (многоугольник). В файле нет Крыма, Севастополя. В файле не выделены Москва и СПб. Крым я дорисую сам, а Мск и СПб для моих задач не принципиальны.

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

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

Читать далее

Почему мне так нравится использовать Python для автоматизации тестирования?

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

Когда дело доходит до автоматизации тестирования, первый и самый сложный вопрос, который встает перед вами это какой язык выбрать, чтобы он имел хорошую поддержку автоматизации тестирования. Python, Java, C#, Ruby и т.д. – лишь некоторые из популярных языков, которые можно использовать с фреймворком для автоматизации Selenium. Несмотря на это, во всем мире QA-команды активно используют именно Python, особенно в связке с Selenium WebDriver.

У разработчиков и тестировщиков появляется несколько вариантов, когда дело доходит до использования языков программирования с фреймворком Selenium. Как у инженера по автоматизации, у меня была возможность пользоваться разными языками, начиная с С и заканчивая Java, Python, C++ в зависимости от проекта. Несмотря на то, что мне удобно использовать Java и C# с Selenium, Python все равно остается лучшим языком для написания скриптов для автоматизации тестирования с этим фреймворком.

В этой статье я расскажу о 12 основных причинах, по которым автоматизированное тестирование на Python в связке с Selenium WebDriver – это отличный вариант в моем случае. 

Начнём!

Твиттер Илона Маска в телеграме и с переводом на русский

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

Хочу поделиться одной моей поделкой и примерами кода, возможно, все это тоже будет полезно сообществу. В этой статье я поделюсь тем, что я сделал, чтобы читать Twitter-аккаунт Маска в удобном мне месте и имея под рукой перевод англоязычных твитов на русский. Все описания, ссылки и примеры кода также под катом

под кат

О том, как мы научили машину определять пол человека по его почерку

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

Для начала хотелось бы упомянуть, что это далеко не первое исследование подобного рода. Начиная с 1960-х готов по настоящее время было разработанно множество программных комплексов и методик, позволяющие решать задачи идентификационного (кем именно была выполнена рукопись, представленная на исследование) и диагностического характера (дифференциации рукописей на мужское и женское, вычисление предполагаемого возраста исполнителя рукописи и т. д.). В качестве примера можно привести подобные программные комплексы: «Прогноз», «POL», «Тюльпан», «ДИА», «Прост», «Рабочее место эксперта-почерковеда» и так далее.

Однако не будем углубляться в историю…

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

Для начала кратко разберем понятие почерк:

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

В свою очередь, он имеет следующие основные свойства:

Читать далее

Разработчик популярного веб-фреймворка FastAPI — об истории его создания и перспективах аннотаций типов Python

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


Python-девелопер и писатель Рики Уайт взял интервью у Себастьяна Рамиреса, разработчика из Explosion AI. Но Себастьян не просто разработчик, это заметная фигура в open source сообществе, создатель популярных фреймворков FastAPI и Typer. В основном речь шла про широкие возможности применения аннотаций типов Python, историю создания фреймворка FastAPI и его дальнейшее развитие. Кроме того, Себастьян рассказал о своих планах по работе над другими open source проектами. Без лишних слов, давайте перейдем к интервью.

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

Себастьян: Спасибо, что пригласил [улыбается].

Я начал программировать, когда мне было пятнадцать. Я пытался создать веб-сайт для бизнеса своих родителей. Первым моим настоящим «кодом» был JavaScript внутри HTML — модальное диалоговое окно (alert) с фразой «Hello World». Я до сих пор помню, как обрадовался, увидев это маленькое окно с сообщением, и испытал чувство всемогущества от мысли, что это запрограммировал я.

Я много лет боялся изучать какой-либо другой язык, думая, что сначала должен «хотя бы» освоить JavaScript. Но потом на одном из многих онлайн-курсов, которые я проходил, возникла необходимость использовать Python для управления искусственным интеллектом в Pac-Man и для некоторых других задач. Курс состоял из одного длинного туториала по основам Python, и этого было достаточно. Мне очень хотелось попробовать.

Я быстро влюбился в Python и пожалел, что не начал раньше!
Читать дальше →

Запросить 100 серверов нельзя оптимизировать код. Ставим запятую

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

Можно выделить ряд алгоритмов, которые являются базовыми и лежат в основе практически каждой строчки программ, написанных на языках высокого уровня. Хорошо иметь под руками классический многотомный труд Дональда Кнута "The Art of Computer Programming", там детально разобраны многие базовые алгоритмы. Но прочесть и усвоить все — задача, требующая много усилий и времени, которая должна как-то быть мотивирована.


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


Далее разберем нюансы на примере функций сортировки. Сортировка и поиск используются максимально часто во всех манипуляциях с данными. Экономия нескольких миллисекунд на операции может приводить к суммарному сокращению часов расчета на значительных данных.


Является продолжением серии предыдущих публикаций.

Читать дальше →

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