Обновить
523.35

Python *

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

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

Оптимизация на простых типах данных. Часть №2 «Числа»

Время на прочтение8 мин
Охват и читатели7.5K
19 апреля автор курса «Алгоритмы для разработчиков» в Яндекс.Практикуме и разработчик в компании Joom Александра Воронцова провела открытый вебинар «Оптимизация на простых типах данных». У Аси за спиной 11 лет разработки, опыт олимпиадного программирования, а также работа в Яндексе с высоконагруженными проектами.

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

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


Десктопизация по-питоновски. Инструменты для создания автотестов

Время на прочтение9 мин
Охват и читатели23K

Автоматизация тестирования – неотъемлемая часть процесса обеспечения качества. Мы в нашей практике чаще всего разрабатываем тесты для веб-, мобильных приложений и API, но сегодня хотим рассказать о более редком направлении – тестировании десктоп-приложений.

Кратко рассмотрим подходы, инструменты, технологии и «грабли», на которые можно наступить при выполнении этой задачи. Статья будет полезна специалистам, которые хотят попробовать автоматизировать ежедневную монотонную работу, а также коллегам по цеху в сфере автоматизации gui-тестирования – как начинающим, так и разработчикам с опытом.

Читать далее

Безопасный ввод и сохранение зашифрованных паролей в конфигах Linux: пишем скрипт на Python

Время на прочтение5 мин
Охват и читатели21K
Как вывести свою систему на новый уровень безопасности с модулями python-gnupg и getpass4.


Изображение :  freeGraphicToday, via Pixabay. CC0.

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

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

К тому же, я использую почтовый клиент Mutt. Он позволяет мне читать и составлять электронные письма прямо в Linux-терминале. Мне удобно, мне нравится. Правда, ему нужно, чтобы я хранил пароль в файле конфигурации (.mutt), либо всё время вводил пароль в интерактивном режиме. Поэтому я ограничил права доступа к моему конфигурационному файлу Mutt, чтобы его мог видеть только я. 

Но есть ещё один важный момент:
Читать дальше →

Оптимизация на простых типах данных. Часть №1 «Строки»

Время на прочтение12 мин
Охват и читатели8.3K
19 апреля автор курса «Алгоритмы для разработчиков» в Яндекс.Практикуме и разработчик в компании Joom Александра Воронцова провела открытый вебинар «Оптимизация на простых типах данных». У Аси за спиной 11 лет разработки, опыт олимпиадного программирования, а также работа в Яндексе с высоконагруженными проектами.

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

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


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

Книга «Python, например»

Время на прочтение6 мин
Охват и читатели10K
image Привет, Хаброжители! Python — стремительно развивающийся язык программирования современности. В этом увлекательном и необычном руководстве материал разбивается на доступные пошаговые фрагменты, а теория объясняется кратко и понятно. Вместо того чтобы обрушивать на читателя лавину технического жаргона, вгоняющего в ступор, эта книга предлагает ему поработать над 150 практическими задачами. Создавая программы для решения этих задач, читатель быстро перейдет от азов к уверенному использованию сопрограмм, графического пользовательского интерфейса и к работе с внешними файлами — текстовыми, в формате .csv и базами данных SQL. Книга идеально подойдет каждому, кто хочет освоить программирование на Python. В частности студенты, изучающие computer science, и преподаватели, которые хотят более уверенно овладеть Python, найдут в книге подборку готовых задач для использования на учебных
курсах.
Читать дальше →

Data Phoenix Digest — 08.07.2021

Время на прочтение3 мин
Охват и читатели918

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

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

Также хочу пригласить всех 14 июля на долгожданный оффлайн митап одесского Open Data Science сообщества. На нем мы поговорим про управление данными и обнаружение объектов в реальном мире, а также вас ждет много живого общения, которого нам очень не хватало на карантине. Участие бесплатное, будет организована онлайн-трансляция. Детали и обязательная предварительная регистрация здесь.

Читать далее

Роль обратного распределения в построении нейросети

Время на прочтение4 мин
Охват и читатели3.1K

Прежде чем приступить к раскрытию темы, необходимо ознакомиться с общими понятиями.

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

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

Размышление, которые привели меня к использованию алгоритма обратного распределения:

1.       Прежде всего, если я хочу создать нейронную сеть мне нужно инициализировать некоторые веса.

2.       Какие бы значения я ни выбрала для весов, я не знаю насколько они верны.

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

4.       Предположим, моя ошибка модели произошла слишком много раз.

5.       Это означает, что мой прогнозируемый результат сильно отличается от фактического. Так что мне делать? Постараюсь минимизировать ошибку.

Читать далее

Диаграмма Сэнкей (Sankey diagram) на Python

Время на прочтение10 мин
Охват и читатели34K

В этой статье рассмотрим, как пошагово создать диаграмму Сэнкей - от загрузки и генерирования необходимых данных до сохранения полученной диаграммы. Используемые инструменты - python, pandas и plotly.

Читать далее

Четыре проекта с веб-скрейпингом, которые позволят упростить себе жизнь

Время на прочтение5 мин
Охват и читатели27K
image

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

Веб-скрейпинг — это процесс извлечения данных с веб-сайта. Для изучения веб-скрейпинга достаточно пройти туториал о принципах работы таких библиотек Python, как Beautiful Soup, Selenium или Scrapy; однако если вы не будете применять на практике все изученные концепции, то время окажется потраченным впустую.

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

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

Аннотирование текстов при помощи BERT

Время на прочтение5 мин
Охват и читатели6.5K

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

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

Задача создания краткой аннотации текстов решается двумя способами: 

·        Абстрактивный подход – генерация нового текста, на основе полученной информации

·        Экстрактивный подход – использование слов/словосочетаний, ранее использованных в текстах

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

Основной минус такого подхода – разметка. Если ваши тексты написаны по принципу пирамиды Минто, то вам скорее всего повезло, разметку можно провести механически, выделив первое или несколько первых предложений в качестве референсного саммари.

Читать далее

Анонсируем версию Datalore Enterprise для команд Data Science

Время на прочтение4 мин
Охват и читатели1.1K

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

Jupyter-ноутбуки хоть и вызывают споры, однако все равно являются самым часто используемым инструментом для решения задач Data Science. Ноутбуки просты в личном использовании. Но если вы когда-либо пробовали организовать командную работу с ними, то наверняка сталкивались со сложностями. Именно поэтому мы в JetBrains решили выпустить специальную версию Datalore Enterprise для команд Data Science!

Читать далее

Лампа для слежения за фазами Луны на Raspberry Pi и Python

Время на прочтение8 мин
Охват и читатели7.5K
Лампа для слежения за фазами Луны, об изготовлении которой я хочу рассказать, это — развитие моего проекта лампы, воспроизводящей восход Солнца, которую я сделал для того, чтобы убедить сына в том, что день не начинается в 5 часов утра.

Работая над этой новой моделью лампы, я хотел внести кое-какие улучшения в исходный проект и вырваться из моей «программистской зоны комфорта». В предыдущем проекте я кое-что сделал на скорую руку, поступая так, как мне удобно и привычно, а не так, как следовало бы поступать. Мне, кроме того, хотелось исследовать пределы возможностей Raspberry Pi в деле обеспечения энергией светодиодов NeoPixel.

Устройство «лунной» лампы похоже на устройство лампы «солнечной». Она представляет собой сферу, собранную в технике складывания фигур оригами, называемой «снапология». Свет даёт светодиодное кольцо NeoPixel, а в основе всего этого лежит Raspberry Pi. Новая лампа имеет такое же разнообразие программ освещения, что и старая. В частности, речь идёт об аналоге имитации спокойного восхода Солнца по утрам и о «программе засыпания», когда всё начинается с яркого синего света, который постепенно угасает, доходя до уровня, на котором лампа становится ночником.


Начало «программы засыпания»
Читать дальше →

Эксперимент для сотрудника с нарушением слуха, ч. 1

Время на прочтение10 мин
Охват и читатели4.1K

Привет, c вами Cloud4Y!

Есть замечательная статья 'Experimenting On My Hearing Loss' by paddlesteamer, которая сама по себе достойна перевода. Но инженер компании Дмитрий Михайлов вместе с Андреем Огурчиковым пошли дальше, испытав методику на себе. Материала получилось много, с обилием кода и аудиограмм. Поэтому мы разбили его на две части. В первой расскажем, зачем нам понадобилось "играться" со звуком и опубликуем перевод статьи, ставшей основной для последующей доработки напильником. Вторая часть будет посвящена нашему решению. Если у вас есть сотрудники с нарушениями слуха, рекомендуем к прочтению.

Читать далее

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

Спектрометр своими руками за 5 долларов и немного OpenCV

Время на прочтение6 мин
Охват и читатели31K

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

Читать далее

Нейродайджест: главное из области машинного обучения за июнь 2021

Время на прочтение4 мин
Охват и читатели5.7K

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

Как вы помните, в прошлом году Microsoft получила уникальные права на использование GPT-3. И вот за прошлый месяц на базе языковой модели от Open AI были представлены два продукта.

Перейти к обзору

Учимся читать код, изучая стандартную библиотеку Python

Время на прочтение5 мин
Охват и читатели46K


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

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

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

Но какой же код нужно читать?

«Просто читай то, что нравится». А если вы не знаете, что вам нравится? А если вам не нравится что-то правильное?

Или хуже того — если вам нравится что-то неправильное и из-за этого у вас выработаются вредные привычки?

В конечном итоге, для этого ведь необходимо понимание… Но именно его мы и стремимся обрести.

«На GitHub куча проектов — выберите понравившийся и изучайте, как его реализовали разработчики». Однако самые успешные проекты довольно объёмны — с чего начинать?

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

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

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

В этой статье мы рассмотрим некоторые модули стандартной библиотеки Python.
Читать дальше →

Будущее аннотаций типов в Python

Время на прочтение8 мин
Охват и читатели23K

Аннотации в Python прошли этап от необязательной, экспериментальной возможности добавления метаданных до широко используемого инструмента. Хотя изначально большинство разработчиков использовало их лишь для статического анализа кода (mypyPylance), некоторые энтузиасты нашли им применение и в период выполнения (runtime) программы (PydanticeforceFastAPI).

Однако перед релизом Python 3.10 разработчики этих библиотек забили тревогу, будущее использование аннотаций в период выполнения программы оказалось под угрозой.

Приглашаю всех, кому интересно будущее подсказок типов в Python, к прочтению данной статьи.

Читать далее

Разработка (dev) и data science в enterprise — битва за ресурсы или эффективное сотрудничество?

Время на прочтение9 мин
Охват и читатели4.8K

В подавляющем большинстве случаев, когда речь заходит о «настоящей» разработке продукта или решения enterprise уровня, сразу появляются корпоративные архитекторы и глобальные архитектуры и шаблоны, высокоуровневые модели данных и концепты, попытки охватить всё и вся. Формируется шорт лист из языков и фреймворков, в рамках которых идет вся последующая разработка. Все «только на Java» или «только на C#» или… (впишите на свое усмотрение).
Несомненно, это является отражением предыдущего проектного опыта, лучших мировых практик, готовности подхватить новые запросы бизнеса и в общем случае такой подход оправдан. Но в каждом частном случае подобный глобализм на этапе взлета продукта, в тот момент, когда многое еще находится в состоянии неопределенности, может просто погрести под собой начинание и превратить проект в очередную неудачу. Можно ли что-то изменить, упростить и улучшить не теряя при этом в качестве?
Оказывается что это вполне возможно за счет объединения классической разработки ПО с инструментами и подходами data science (далее просто DS). Как этого можно достичь — разберем по шагам.

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

Гибкий нейрон: Виртуальные и Действительные слои

Время на прочтение8 мин
Охват и читатели2.1K

Сегодня мы поговорим о нейронах и степенных рядах. Поехали!

Рассмотрим функцию синуса.

Читать далее

Нейросети в исследовании процессов

Время на прочтение8 мин
Охват и читатели6.9K

Нейронные сети – это статистические вычислительные модели, применяемые к множеству практических задач, в том числе обработка изображений, машинный перевод и поиск шаблонов. При обучении с учителем, нейросеть тренируется на примере уже известных объектов, то есть для всех исходных данных у нас есть предопределенный правильный ответ. Главная идея обучения нейросети – это настроить такую конфигурацию, при которой ответы модели будут максимально приближены к корректным. Что же до рекуррентных нейросетей, то они не только обучаются на исходных объектах, но и предоставляют контекст для каждого следующего предсказания. Это помогает нейросети сохранять состояние, в котором было принято решение. В этой статье мы обсудим применение рекуррентных нейросетей (РНС) в проблеме исследования процесса в process mining.

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

Для прояснения подхода возьмём лог событий L = [(a, b, c, d, e), (a, b, d)] в качестве примера. Внутренние вычисления нейросети требуют предобработку последовательностей событий следующим образом.

Читать далее

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