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. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinцелое числоn— количество элементов. - Читает следующую строку с
nцелыми числами, разделёнными пробелами. - Создаёт одномерный
ndarrayс помощьюnp.arrayиз прочитанных значений, явно передавdtype=np.float32. - Выводит в
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
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- dtype NumPy: целые и вещественные массивы, типы элементов
- Срезы двумерного массива NumPy: строки, столбцы и шаг
- NumPy reshape и transpose: разница на примере и задача
- NumPy newaxis и squeeze: вектор-строка и вектор-столбец
- NumPy: целочисленная индексация, присваивание и маска
- NumPy zeros, ones и full: dtype — пример и задача
