NumPy: целочисленная индексация, присваивание и маска
Целочисленные индексы: отбор, присваивание и маска ненулевых
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinодну строку с целыми числами через пробел — элементы массиваdata. Создаётdata = np.array([...], dtype=int). - Читает вторую строку с целыми числами через пробел — массив целочисленных индексов
idx. Создаётidx = np.array([...], dtype=int). - Выводит элементы
data[idx]через пробел, затем на следующей строке —shapeрезультата в виде(k,). - Выполняет
data[idx] = 0— присваивает ноль всем позициям изidxна месте. - Строит булеву маску
mask_nz = data != 0для ненулевых элементов. - Выводит элементы
data[mask_nz]через пробел, затем на следующей строке — их количество (одно целое число, равноеdata[mask_nz].shape[0]). - Выводит итоговый массив
dataчерез пробел.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
Строка 1: целые числа через пробел — элементы массива data (не менее четырёх).
Строка 2: целые числа через пробел — индексы idx (все в диапазоне [0, len(data)); могут не повторяться).
Формат вывода
Строка 1: элементы data[idx] через пробел.
Строка 2: shape результата data[idx] в виде (k,).
Строка 3: ненулевые элементы data после присваивания через пробел.
Строка 4: количество ненулевых элементов (одно целое).
Строка 5: итоговый массив data через пробел.
Пример
- Ввод
50 10 80 30 70 20 60 2 5 0 6
- Вывод
80 20 50 60 (4,) 10 30 70 3 0 10 0 30 70 0 0
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- Булева маска NumPy: фильтрация, несколько условий и замена
- dtype NumPy: целые и вещественные массивы, типы элементов
- NumPy shape, ndim, size и dtype: атрибуты массива и задача
- Срезы двумерного массива NumPy: строки, столбцы и шаг
- NumPy reshape и transpose: разница на примере и задача
- NumPy newaxis и squeeze: вектор-строка и вектор-столбец
