NumPy: вычисления и устройство массивов

NaN в числовых массивах: обнаружение и nan-устойчивые агрегаты

Содержание курса

Найди и исправь: обычные агрегаты вместо nan-устойчивых

Что уже дано

Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет.

В редакторе есть сломанный код. Он пытается вычислить четыре агрегата одномерного массива с пропусками, но использует обычные функции np.sum, np.mean, np.min, np.max — из-за этого все результаты равны nan вместо реальных чисел.

Что нужно сделать

Найдите и исправьте все четыре вызова: замените каждую обычную агрегирующую функцию на соответствующую nan-устойчивую (np.nansum, np.nanmean, np.nanmin, np.nanmax).

Программа должна:

  1. Читать из stdin одну строку с токенами через пробел. Токен nan — пропуск, остальные — вещественные числа. Создавать одномерный массив arr через np.array(..., dtype=float).
  2. Вычислять и выводить в stdout ровно четыре строки:
  • sum: <значение> — nan-устойчивая сумма, округлённая до 2 знаков;
  • mean: <значение> — nan-устойчивое среднее, округлённое до 2 знаков;
  • min: <значение> — nan-устойчивый минимум, округлённый до 2 знаков;
  • max: <значение> — nan-устойчивый максимум, округлённый до 2 знаков.

Ввод и вывод

Программа читает stdin и пишет в stdout.

Формат ввода

токен_0 токен_1 ... токен_n

Токен nan (строчными буквами) обозначает пропуск. Остальные токены — вещественные числа. Гарантируется, что в массиве есть хотя бы одно не-NaN значение.

Формат вывода

Ровно четыре строки:

sum: <значение>
mean: <значение>
min: <значение>
max: <значение>
О данных в ответах

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

Проверяется тестами (1)
  • Тест 1
    Ввод
    10.0 nan 4.0 nan 6.0
    Ожидаемый вывод
    sum: 20.0
    mean: 6.67
    min: 4.0
    max: 10.0
Решение
Как проверяется решение

Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.

Отправьте решение, чтобы увидеть результаты тестов.

NaN в числовых массивах: обнаружение и nan-устойчивые агрегаты — NumPy и pandas: практический тренажёр — Latorn