Обновить
565.14

Python *

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

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

Нет времени объяснять, сделай автопилот

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

Здравствуйте, товарищи!

На выходных проходил хакасборкатон — гонки на самоуправляемых моделях автомобилей на базе комплекта donkeycar при содействии Х5, FLESS и сообщества энтузиастов self-driving.

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

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

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

Дешифровка текста методом частотного анализа

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

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


s1200

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

Разбор статьи из журнала «Код» (Яндекс Практикум)

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

Пояснительная часть


Недавно мне попалась статья в журнале "Код" под названием "Сравнение: классы против функций". Я прочитал ее и она показалось мне… странной. Журнал позиционирует себя как издание для начинающих программистов. Но даже со скидкой на уровень аудитории статья вызывает много вопросов.


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


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


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


Для полноты контекста прочитайте оригинал, это не займет много времени.

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

Как проанализировать рынок фотостудий с помощью Python (3/3). Аналитика

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

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

Группа молодых предпринимателей рассматривала вариант открытия своей фотостудии в Москве. Им необходимо было узнать:

  • какое общее состояние рынка фотостудий: растет, стабильный или падает?
  • какова сезонность рынка?
  • сколько они смогут заработать?
  • где лучше открывать залы?
  • какую сумму вкладывать в проект?
  • на сколько сильная конкуренция на рынке?

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


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

Хайповые строительные сектора и стоимость работ в Большом городе. Инфляция и рост чека в Сан-Франциско

Время на прочтение11 мин
Охват и читатели2.6K
Сан-Франциско — технологическая «Москва» нашего мира, на примере которого (при помощи открытых данных) можно наблюдать за развитием строительной отрасли в больших городах и столицах. В этом технологичном городе очень выраженно проходили экономические циклы, которые в разные временные промежутки, давали взрывной рост спроса разным секторам недвижимости.

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

В прошлой статье была рассмотрена общая годовая сумма строительных объемов (инвестиций) в Сан-Франциско в период с 1980 по 2018 год. По разнице между ожидаемой (сметной) и фактической (пересмотренной) стоимостью строительства отслеживались движения настроений инвесторов в периоды экономических бумов и кризисов в регионе.

Взлёты и падения строительной отрасли Сан-Франциско. Тенденции и история развития строительной активности



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

Пишем веб сервис на Python с помощью FastAPI

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

Знаю, знаю, наверное вы сейчас думаете «что, опять?!».

Да, на Хабре уже неоднократно писали о фреймворке FastAPI. Но я предлагаю рассмотреть этот инструмент немного подробнее и написать API своего собственного мини Хабра без кармы и рейтингов, зато с блэкджеком и с тестами, аутентификацией, миграциями и асинхронной работой с БД.
Читать дальше →

Подборка статей о машинном обучении: кейсы, гайды и исследования за июль 2020

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


Похоже, не один наш дайджест не обходится без упоминания разработок Open AI: в июле самой обсуждаемой темой в области машинного обучения стал новый алгоритм GPT-3. Технически это не одна модель, а целое семейство, которое для удобства обобщают под единым названием. В самой крупной модели используется 175 млрд параметров, а для обучения использовался датасет размером 570 Gb, в который вошли отфильтрованные данные из архивов Common Crawl и высококачественные данные WebText2, Books1, Books2 и Wikipedia.

Здесь стоит отметить, что модель предобучена, и не требует файн тюнинга под конкретные задачи: для достижения лучших результатов рекомендуется предоставлять ей хотя бы один (one-shot) или несколько (few-shot) примеров решения задач на входе, но можно обойтись вообще без них (zero-shot). Чтобы модель сгенерировала решение задачи, достаточно описать задачу на английском языке. Принято считать, что это алгоритм генерации текстов, но уже видно, что потенциал намного богаче.
Читать дальше →

Aiohttp + Dependency Injector — руководство по применению dependency injection

Время на прочтение13 мин
Охват и читатели7.6K
Привет,

Я создатель Dependency Injector. Это dependency injection фреймворк для Python.

Продолжаю серию руководств по применению Dependency Injector для построения приложений.

В этом руководстве хочу показать как применять Dependency Injector для разработки aiohttp приложений.

Руководство состоит из таких частей:
Читать дальше →

Мир без корутин. Костыли для программиста — asyncio

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

1. Введение


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

Мы — программисты. Может, в разной степени, но некоторые — уж точно. Это я к тому, что мы разные и мыслить можем тоже по-разному. Утверждение, что программист мыслит только последовательно, столь же однобоко, вредно и даже кощунственно, как и то, что человек только бегает. Он иногда — и летает. Кто-то, как летчики, делает это довольно регулярно, а некоторые, как космонавты, даже месяцами и непрерывно. Идея последовательного мышления принижает способности человека. В какой-то момент и на какое-то время в это можно даже поверить, но " все-таки она вертится" — это про то, что рано или поздно жизнь возьмет свое.
Читать дальше →

Анонс: Ultimate Guide по карьере в AI от профессионала: выбрать специальность, прокачаться и найти классную работу

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


СЕГОДНЯ, 3 августа в 20:00 пройдет эфир с Сергеем Ширкиным о том, как построить успешную карьеру в AI. Стрим можно будет посмотреть в любых наших соцсетях — где удобно, там и смотрите.



Сергей Ширкин стоит у истоков факультетов Искусственного интеллекта, Аналитики Big Data и Data Engineering онлайн-университета Geek University, на которых работает деканом и преподавателем.

Тесты на pytest с генерацией отчетов в Allure с использованием Docker и Gitlab Pages и частично selenium

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

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


Пример отчета, получающийся в allure


Рабочий репозиторий с финальной версией рабочего кода и инфраструктуры


Ссылка на отчеты после прогона тестов


Когда я хотел добавить в gitlab автотесты в стеке python, allure, docker, то я выяснил, что толковых статей на эту тему нет. Пришлось разбираться самостоятельно и как результат проб и ошибок появилась эта статья, которая скорее является гайдом, частично затрагивающим написание тестов, но наибольший фокус именно на выстраивании инфраструктуры. Если у вас уже написаны тесты на allure, то вы сразу можете переходить к разделу настройки инфраструктуры. Отмечу, что текст НЕ затрагивает написание UI тестов, но я затрону инфраструктуру для них в отдельном блоке.

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

Как переписать SQL-запросы на Python с помощью Pandas

Время на прочтение2 мин
Охват и читатели25K
В этой статье June Tao Ching рассказал, как с помощью Pandas добиться на Python такого же результата, как в SQL-запросах. Перед вами — перевод, а оригинал вы можете найти в блоге towardsdatascience.com.

image
Фото с сайта Unsplash. Автор: Hitesh Choudhary

Получение такого же результата на Python, как и при SQL-запросе


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

Как проанализировать рынок фотостудий с помощью Python (2/3). База данных

Время на прочтение12 мин
Охват и читатели4.9K
В предыдущей статье в рамках коммерческого проекта по анализу рынка фотостудий рассмотрел создание парсинга: выгрузка списка фотостудий, списка залов, данных по бронированию с момента открытия зала до последней брони.

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

В статье рассмотрю:

  • создание простой SQLite базы данных;
  • запись информации с помощь Python;
  • чтение данных и перевод в формат DataFrame;
  • обновление парсинга с учетом данных БД.


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

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

Как расшифровать прошивку автомобиля в неизвестном формате

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

Toyota распространяет свои прошивки в недокументированном формате. Мой заказчик, у которого автомобиль этой марки, показал мне файл прошивки, который начинается так:

CALIBRATIONêXi º
attach.att
ÓÏ[Format]
Version=4

[Vehicle]
Number=0
DateOfIssue=2019-08-26
VehicleType=GUN1**
EngineType=1GD-FTV,2GD-FTV
VehicleName=IMV
ModelYear=15-
ContactType=CAN
KindOfECU=0
NumberOfCalibration=1

[CPU01]
CPUImageName=3F0S7300.xxz
FlashCodeName=
NewCID=3F0S7300
LocationID=0002000100070720
CPUType=87
NumberOfTargets=3
01_TargetCalibration=3F0S7200
01_TargetData=3531464734383B3A
02_TargetCalibration=3F0S7100
02_TargetData=3747354537494A39
03_TargetCalibration=3F0S7000
03_TargetData=3732463737463B4A

3F0S7300forIMV.txt ¸Ni¶m5A56001000820EE13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E2030133E2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E2030133E2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E20911381959FAB0EE9000
81C9E03ADE35CEEEEFC5CF8DE9AC0910
38C2E031DE35CEEEEFC8CF87E95C0920
...

Дальше идут строки по 32 шестнадцатеричные цифры.

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

Какая асинхронность должна была бы быть в Python

Время на прочтение9 мин
Охват и читатели15K
В последние несколько лет ключевое слово async и семантика асинхронного программирования проникла во многие популярные языки программирования: JavaScript, Rust, C#, и многие другие. Конечно, в Python тоже есть async/await, они появились в Python 3.5.

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

Обзор python-пакета yadirstat — самый простой способ получить статистику из API Яндекс Директ

Время на прочтение2 мин
Охват и читатели6.4K
Здравствуйте, мне приходится собирать статистику из Яндекс Директ и, чтобы упростить работу, я опубликовал свой python-пакет, с помощью которого это можно делать очень просто.

Сначала вам следует получить токен для своего аккаунта (подробнее тут)

Пакет yadirstat уже опубликован на pypi — вы сможете установить его с помощью pip

pip install yadirstat

Пакет позволяет получить следующую статистику:

  • Статистика по кампаниям
  • Статистика по условиям показов (например, ключевые слова и аудитории)
  • Статистика по поисковым запросам
Читать дальше →

Создание системы антифрода в такси с нуля

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

Добрый день. Меня зовут Никита Башун, работаю дата-аналитиком в группе компаний «Везёт». Мой рассказ будет о том, как мы командой из трёх человек с нуля создавали систему антифрода для сервиса заказа поездок.


image

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

Изучаем mutmut — инструмент для мутационного тестирования на Python

Время на прочтение3 мин
Охват и читатели9.1K
Мутационное тестирование позволяет выявить баги, которые не покрыты обычными тестами.

У вас есть тесты на все случаи жизни? Или может быть, в репозитории вашего проекта даже лежит справка «О 100-процентном тестовом покрытии»? Но разве в реальной жизни всё так просто и достижимо?


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

Apache Airflow: делаем ETL проще

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

Привет, я Дмитрий Логвиненко — Data Engineer отдела аналитики группы компаний «Везёт».


Я расскажу вам о замечательном инструменте для разработки ETL-процессов — Apache Airflow. Но Airflow настолько универсален и многогранен, что вам стоит присмотреться к нему даже если вы не занимаетесь потоками данных, а имеете потребность периодически запускать какие-либо процессы и следить за их выполнением.


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



Что обычно видишь, когда гуглишь слово Airflow / Wikimedia Commons

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

В VK добавили Callback кнопки для ботов

Время на прочтение5 мин
Охват и читатели35K
Использовать callback

Доброго времени суток, уважаемые жители Хабра.


Мой первый пост. Будет кратко, емко и надеюсь актуально.


9го июля ВК выкатил callback кнопки для чат-ботов. Телеграм напрягся сделал это в 199... давно. Самая популярная библиотека для разработки чат-ботов под ВК на Python — vk_api (от разработчика python273). Ввиду того, что свежие правки в нее вносятся медленно, я взял на себя смелость сделать форк, дополнить его и описать небольшой пример использования.


Что сделано относительно исходной v11.80?


  1. Обновлены ограничения по клавиатуре (в соответствии с изменениями в API):


    • не более 5 кнопок в строке (было 4);
    • не более 10 и 6 строк для стандартного и inline представления соответственно (было 10 и там, и там);
    • Default кнопка переименована в Secondary.

  2. Добавлены callback-кнопки:


    • новый тип события "message_event" (клик по кнопке);
    • новый метод "создать callback кнопку";
    • добавлен example (анимация работы и код будут приведены ниже).


Виды callback кнопок


У сallback кнопок 3 встроенных действия по клику (+ редактирование сообщения):


  1. show_snackbar — показать всплывающее сообщение (исчезает через 10 сек);
  2. open_link — открыть URL ссылку;
  3. open_app — открыть ВК приложение;
  4. можно настроить редактирование текущего сообщения, дабы по клику можно было изменять клавиатуру + текст в текущем сообщении.

Как установить модифицированную библиотеку?


pip install git+https://github.com/chebotarevmichael/vk_api
Читать дальше →

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