Задача курса

NumPy squeeze и newaxis: строка, столбец и форма массива

Курс «NumPy и pandas: практический тренажёр» · урок «Изменение формы: reshape, transpose, добавление и удаление осей»

Условие

Вектор-столбец, вектор-строка и squeeze с axis: управление единичными осями

Что уже дано

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

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

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

  1. Читает из stdin одну строку с целым числом n.
  2. Создаёт одномерный массив v через np.arange(n) — shape (n,).
  3. Превращает v в вектор-столбец col через v[:, np.newaxis] — shape (n, 1).
  4. Превращает v в вектор-строку row через v[np.newaxis, :] — shape (1, n).
  5. Применяет np.squeeze(col, axis=1) — убирает только вторую ось у col, получает массив s1 shape (n,).
  6. Применяет np.squeeze(row, axis=0) — убирает только первую ось у row, получает массив s2 shape (n,).
  7. Выводит в 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
Без регистрации · результат не сохраняется