Bootstrap ratio-метрики (ARPU) с CI

Hard NumPy статистика Яндекс

Условие задачи

Дано: DataFrame `users` с колонками group ("control"/"treatment"), revenue (выручка, может быть 0 для неплатящих). Сравните ARPU (Average Revenue Per User = sum(revenue)/count(users)) двух групп и постройте 95% доверительный интервал для разницы методом бутстрэпа (10000 ресэмплов). significant = True если 0 не входит в CI разницы. Сохраните dict {"arpu_control":..., "arpu_treatment":..., "diff":..., "ci_lower":..., "ci_upper":..., "significant": bool} (округлённые до 2 знаков) в `result`.

Темы

bootstrap arpu ratio_metric ab_test statistics

Подсказки

Что проверяет эта задача

Задача «Bootstrap ratio-метрики (ARPU) с CI» учит векторно считать на numpy без медленных циклов. Такие задачи дают на собеседованиях в Яндекс и других IT-компаниях. Уровень сложный — проверяет глубину и умение собрать решение из нескольких приёмов.

Как подступиться к решению

Сначала разбери условие и формат входа-выхода, прикинь крайние случаи (пустой ввод, дубли, NaN). Затем выбери структуру данных и собери решение по шагам — начни с простого рабочего варианта, потом оптимизируй сложность. Код пишешь и запускаешь прямо в браузере: Python-тренажёр исполняет его через Pyodide (pandas, numpy, scipy) и проверяет результат автоматически.

В numpy ключ к скорости — векторизация и broadcasting вместо циклов Python. Понимание dtype, формы массива (shape) и того, какие операции возвращают копию, а какие view, отличает джуна от мидла. На собеседовании просят не просто посчитать, а объяснить, почему векторный код быстрее и где он экономит память.

Прокачать Python для аналитики — бесплатный курс «Pandas с нуля» и Python-тренажёр.

Открыть задачу в тренажёре → ← Все Python-задачи