NaN в числовых массивах: обнаружение и nan-устойчивые агрегаты
Содержание курса
Двумерный массив с NaN: обнаружение пропусков и nan-устойчивые агрегаты по осям
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinдва целых числаRиC— число строк и столбцов матрицы. - Читает следующие
Rстрок; каждая содержит ровноCтокенов через пробел. Токен"nan"означает пропуск, остальные токены — вещественные числа. Создаёт двумерный массивmчерезnp.array(..., dtype=float)формы(R, C). - Вычисляет булеву маску пропусков
mask = np.isnan(m). Выводит одной строкой:any=<bool> all=<bool> count=<int>, где<bool>— результатnp.any(mask)иnp.all(mask)в видеTrue/False, а<int>— количество NaN, вычисленное черезnp.sum(mask). - Вычисляет
np.nansum(m, axis=0)— сумму по столбцам (игнорируя NaN). Выводит значения через пробел, округлённые до 2 знаков. - Вычисляет
np.nanmean(m, axis=1)— среднее по строкам (игнорируя NaN). Выводит значения через пробел, округлённые до 2 знаков. - Вычисляет
np.nanmin(m)иnp.nanmax(m)— глобальный минимум и максимум по всему массиву. Выводит их через пробел, округлённые до 2 знаков.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
R C
токен_00 токен_01 ... токен_0(C-1)
...
токен_(R-1)0 ... токен_(R-1)(C-1)
Токен nan (строчными буквами) обозначает пропуск. Остальные токены — числа, допустимы как целые, так и вещественные.
Формат вывода
Ровно четыре строки:
any=<bool> all=<bool> count=<int>
<nansum по столбцам через пробел>
<nanmean по строкам через пробел>
<nanmin> <nanmax>
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
Проверяется тестами (1)
- Тест 1Ввод
3 3 1.0 nan 3.0 nan 5.0 6.0 7.0 8.0 nan
Ожидаемый выводany=True all=False count=3 8.00 13.00 9.00 2.00 5.50 7.50 1.00 8.00
Решение
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
