NaN в числовых массивах: обнаружение и nan-устойчивые агрегаты
Содержание курса
Найди и исправь: обычные агрегаты вместо nan-устойчивых
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет.
В редакторе есть сломанный код. Он пытается вычислить четыре агрегата одномерного массива с пропусками, но использует обычные функции np.sum, np.mean, np.min, np.max — из-за этого все результаты равны nan вместо реальных чисел.
Что нужно сделать
Найдите и исправьте все четыре вызова: замените каждую обычную агрегирующую функцию на соответствующую nan-устойчивую (np.nansum, np.nanmean, np.nanmin, np.nanmax).
Программа должна:
- Читать из
stdinодну строку с токенами через пробел. Токенnan— пропуск, остальные — вещественные числа. Создавать одномерный массивarrчерезnp.array(..., dtype=float). - Вычислять и выводить в
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Ввод
10.0 nan 4.0 nan 6.0
Ожидаемый выводsum: 20.0 mean: 6.67 min: 4.0 max: 10.0
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
