Post tagged: python

Интерактивное исследование JSON-объектов в Jupyter

Работаете с JSON в Jupyter Notebook? Тогда вам понравится вот такой способ интерактивного исследования сложных JSON-объектов, который я утащил с stackoverflow, а туда его утащили с c reddit (автор slashvee), используется пакет renderjson, автор David Caldwell.

Python.v.JS

Однажды это должно было случиться. Я долго старался этого избежать, искал обходные пути и тайные лайзеки. Пытался выкручиваться так и сяк. Но всё-таки жизнь неумолима. Что должно произойти, то произойдёт. Когда-нибудь это может случиться и с вами. Да-да, никто не застрахован! Вы думаете, что выучили C, C++, Pascal, Python, Ruby и даже Haskell, и это вас спасёт? Нет. В один прекрасный день вы столкнётесь с ним. Он войдёт в вашу жизнь, хотите вы этого или нет. Имя ему — JavaScript.

Дальше →

О коровах и быках

О, «Медуза» вспомнила одну из любимых игрушек моего детства — «Коровы и быки» (или «Быки и коровы»). Она была стандартным «поездным» развлечением по пути на какой-нибудь юг: благо, ничего, кроме ручки и бумаги для игры не требуются, да и правила простые. Каждый загадывает по четырёхзначному числу без повторяющихся цифр, потом по очереди пытается угадать число соперника. В ответ на догадку соперник сообщает число «быков» — угаданных цифр, которые стоят на своём месте, и «коров» — угаданных цифр, стоящих не на своём месте. Например, если загадано 1234, а догадкой было 1345, то 1 — это бык, 3 и 4 — коровы, и в ответ услышишь «один бык две коровы». Опираясь на эту информацию, нужно сделать новый ход (предложить новую догадку) и так далее, пока не получишь наконец «четырёх быков» (полностью угаданное число). Задача парной игры: угадать число соперника быстрее, чем он угадает твоё. (Понятно, что на самом деле «парность» здесь условная: это просто две параллельные игры, в которых вы и соперник меняетесь ролями — ну, скорее похоже на бег, чем на теннис: от твоих действий никак не зависит, когда соперник придёт к финишу — можно только пытаться его обогнать.)

Дальше →

Пересечение нескольких множеств в одну строчку

Сегодня на паре по программированию для журналистики данных мы столкнулись с такой задачей: есть список множеств, нужно найти пересечение их всех. Как это проще всего сделать в Python? Оказывается, у этой задачи есть решение в одну строчку.

Собственно, дело было так. Мы смотрели на данные по госзакупкам через API сайта clearspending.ru

Дальше →

Рисуем Мандельброта с помощью Python и Numpy

Что уж говорить: страничка Sunandstuff про фракталы, мелькающая сегодня целый день в моей ленте, и правда красивая (хотя объяснения немного хромают). У меня с этим сюжетом особые отношения: мне в детстве в руки попала книжка «Красота фракталов», в которой, кроме кучи непонятных формул (до сих пор их не понимаю), были ещё очень красивые картинки, а также — самое главное — короткий алгоритм, который позволял эти картинки строить самому. Это казалось мне чудом: программа в 10 строк рисует бесконечно сложные изображения! С тех пор я как одержимый программирую фрактал Мандельброта на всём, что движется. Сначала это был Basic на 486-м компьютере (на одну картинку уходила ровно ночь), потом я выучил Pascal (и с удивлением обнаружил, что он работает раз в сто быстрее бейсика!), потом C, потом даже пытался выучить ассемблер, чтобы рисовать фракталы ещё быстрее (не преуспел, впрочем). Картинка с Мандельбротом, построенном на калькуляторе, украшает мою первую статью в «Компьютерре». Потом я узнал, что по-научному та область, в которой появляется множества Мандельброта и Жюлиа, называется «голоморфной динамикой», и кроме красивых картинок там есть ещё и красивые теоремы, а также до сих пор неразгаданные загадки. Впрочем, своих работ в этой области у меня нет, хоть я и занимаюсь близкими динамическими вещами. Что, однако, не помешает мне рассказать, как строить эти картинки с помощью Python.

Дальше →

Немного о картинках

Для поста в проекте N+1 про неустойчивость многозвенных систем управления я решил нарисовать пару картинок. Первая из них была совсем простой: иллюстрация к фразе «любая «хорошая», гладкая функция похожа на линейную в окрестности фиксированной точки». Нужно было взять какую-нибудь функцию и нарисовать её график несколько раз в разных масштабах. В качестве подопытной функции путём проб и ошибок был выбран многочлен $-x-0.45x^2+0.15x^3$.

Дальше →

Полгода плохая погода, полгода совсем никуда

Эта история началась с невинного разговора о погоде. Примерно такого:

— Смотри-ка, сегодня 10-е марта, а за окном плюс семь. Прямо весна наступила неожиданно.

— Да… Ну, если март тёплый, значит, апрель будет холодный. Так всегда бывает.

— Правда? Сейчас проверим…

И я пошёл искать статистические данные по погоде в Москве. Они нашлись быстро — вот здесь

Дальше →

Скачиваем аттачменты из Gmail

Этот пост будет сугубо техническим. Никакой интересной математики, сплошное решение практических задач.

Несмотря на весь прогресс науки и техники, всевозможные LMS и прочие чудеса, до сих пор самым надёжным способом принять домашние задания у студентов в электронной форме остаётся присылка их на e-mail преподавателя. Конечно, это ужасно. Иногда удаётся уговорить вместо этого загрузить файлы в специальную формочку (которая, к слову, очень легко делается с помощью Google Drive и и каких-то там скриптов

Дальше →

Везение одной партии

Звонок с одной там небольшой радиостанции — просят прокомментировать заявление Андрея Юрьевича Бузина о том, что вероятность получения «Единой Россией» в результате жеребьевки первого места в бюллетенях в 5 субъектах из 13 (как оно на самом деле получилось) чрезвычайно низка — порядка 1/100, процитированное РБК. В обычной ситуации я бы, наверное, не осмелился выступать в таком качестве — Андрей Юрьевич является одним из наиболее квалифицированных экспертов по выборам в России и в статистике разбирается лучше меня, так что непонятно, кто я такой, чтобы подтверждать или опровергать его выводы. Но математика тем приятная наука, что здесь выводы однозначно следуют из посылок, и проверить правильность рассуждений может каждый. И я согласился.

Дальше →