NaN в числовых массивах: обнаружение и nan-устойчивые агрегаты
Содержание курса
Подсчёт NaN, не-NaN и проверка: nansum / count == nanmean
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinодну строку с токенами через пробел. Токенnan(строчными) означает пропуск, остальные — вещественные числа. Создаёт одномерный массивarrчерезnp.array(..., dtype=float). - Вычисляет и выводит число NaN-элементов:
np.sum(np.isnan(arr))— целое число. - Вычисляет и выводит число не-NaN-элементов:
np.sum(~np.isnan(arr))— целое число. - Вычисляет
s = np.nansum(arr)иm = np.nanmean(arr). Выводит оба значения, округлённые до 4 знаков, через пробел. - Проверяет, совпадает ли
round(s / np.sum(~np.isnan(arr)), 4)сround(m, 4). ВыводитTrueилиFalse.
Гарантируется, что в массиве есть хотя бы одно не-NaN значение.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
токен_0 токен_1 ... токен_n
Токен nan (строчными буквами) — пропуск. Остальные токены — вещественные числа. Гарантируется хотя бы одно не-NaN значение.
Формат вывода
Ровно четыре строки:
<число NaN>
<число не-NaN>
<nansum> <nanmean>
<True или False>
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
- Тест 1Ввод
5.0 nan 12.0 8.0 nan 3.0 nan 9.0
Ожидаемый вывод3 5 37.0 7.4 True
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
