NumPy shape, ndim, size и dtype: атрибуты массива и задача

В NumPy shape показывает размеры осей, ndim — количество осей, size — общее число элементов, dtype — тип хранимых значений. Это четыре разных характеристики одного массива.

Как читать атрибуты ndarray

У матрицы с двумя строками и тремя столбцами shape == (2, 3), ndim == 2, а size == 6. Одномерный массив имеет форму (n,): запятая отличает кортеж из одного элемента от числа в скобках.

dtype задаётся для элементов массива, а не для его формы. Например, float32 и float64 оба хранят вещественные числа, но используют разное число байтов. Когда условие требует конкретный тип, задавайте его при создании массива.

Пример на других данных

import numpy as np
a = np.array([[2, 4, 6], [8, 10, 12]], dtype=np.float32)
print(a.shape, a.ndim, a.size, a.dtype)

Результат:

(2, 3) 2 6 float32

Попробуйте сами

Ниже — отдельное упражнение: напишите код и запустите проверку. Другие упражнения по этой теме. Для обучения по порядку откройте бесплатный курс NumPy и pandas.

Явный dtype=float32: создание одномерного массива и вывод всех атрибутов

Что уже дано

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

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

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

  1. Читает из stdin целое число n — количество элементов.
  2. Читает следующую строку с n целыми числами, разделёнными пробелами.
  3. Создаёт одномерный ndarray с помощью np.array из прочитанных значений, явно передав dtype=np.float32.
  4. Выводит в stdout четыре значения через пробел: shape ndim size dtype, где dtype — строковое представление атрибута массива.

Формат shape — строго как у Python: (n,).

Ввод и вывод

Программа читает stdin и пишет в stdout.

Формат ввода

n
элемент_1 элемент_2 ... элемент_n

Первая строка — целое число n. Вторая строка — n целых чисел через пробел.

Формат вывода

Одна строка: shape ndim size dtype, например (5,) 1 5 float32.

Обратите внимание: dtype в выводе должен быть именно float32, а не int64 или float64 — это прямое следствие явного dtype=np.float32.

Пример

Ввод
5
10 20 30 40 50
Вывод
(5,) 1 5 float32
РешениеPython

Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.

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

Связанные задачи