Задача курса
NumPy squeeze и newaxis: строка, столбец и форма массива
Курс «NumPy и pandas: практический тренажёр» · урок «Изменение формы: reshape, transpose, добавление и удаление осей»
Условие
Вектор-столбец, вектор-строка и squeeze с axis: управление единичными осями
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinодну строку с целым числомn. - Создаёт одномерный массив
vчерезnp.arange(n)— shape(n,). - Превращает
vв вектор-столбецcolчерезv[:, np.newaxis]— shape(n, 1). - Превращает
vв вектор-строкуrowчерезv[np.newaxis, :]— shape(1, n). - Применяет
np.squeeze(col, axis=1)— убирает только вторую ось уcol, получает массивs1shape(n,). - Применяет
np.squeeze(row, axis=0)— убирает только первую ось уrow, получает массивs2shape(n,). - Выводит в
stdoutровно шесть строк в формате<имя>: shape=<shape> size=<size>:
v: shape=...col: shape=...row: shape=...s1: shape=...s2: shape=...all_equal=Trueеслиv.size == col.size == row.size == s1.size == s2.size, иначеall_equal=False.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
Одна строка: целое число n (гарантируется n >= 2).
Формат вывода
Шесть строк:
v: shape=(n,) size=<n>
col: shape=(n, 1) size=<n>
row: shape=(1, n) size=<n>
s1: shape=(n,) size=<n>
s2: shape=(n,) size=<n>
all_equal=True
Формат shape — строго как у Python: (n,), (n, 1), (1, n) и т. д.
Примеры
Пример 1
- Ввод
4
- Ожидаемый результат
v: shape=(4,) size=4 col: shape=(4, 1) size=4 row: shape=(1, 4) size=4 s1: shape=(4,) size=4 s2: shape=(4,) size=4 all_equal=True
Попробуйте решить
РешениеPython
Без регистрации · результат не сохраняется
