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

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

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

Подсчёт NaN, не-NaN и проверка: nansum / count == nanmean

Что уже дано

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

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

Напишите программу, которая:

  1. Читает из stdin одну строку с токенами через пробел. Токен nan (строчными) означает пропуск, остальные — вещественные числа. Создаёт одномерный массив arr через np.array(..., dtype=float).
  2. Вычисляет и выводит число NaN-элементов: np.sum(np.isnan(arr)) — целое число.
  3. Вычисляет и выводит число не-NaN-элементов: np.sum(~np.isnan(arr)) — целое число.
  4. Вычисляет s = np.nansum(arr) и m = np.nanmean(arr). Выводит оба значения, округлённые до 4 знаков, через пробел.
  5. Проверяет, совпадает ли 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)
  • Тест 1
    Ввод
    5.0 nan 12.0 8.0 nan 3.0 nan 9.0
    Ожидаемый вывод
    3
    5
    37.0 7.4
    True
Решение
Как проверяется решение

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

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