dtype NumPy: целые и вещественные массивы, типы элементов
dtype описывает тип элементов массива NumPy. Числа Python 1 и 1.0 имеют разные типы; при создании массива это влияет на автоматически выбранный dtype. Для задачи с фиксированными требованиями можно передать тип явно.
Различайте конкретную разрядность и семейство типов: например, dtype.kind равен i для знакового целого и f для вещественного.
Короткий пример
import numpy as np
a = np.array([1, 2], dtype=np.int32)
b = np.array([1, 2.5], dtype=np.float64)
print(a.dtype, a.dtype.kind)
print(b.dtype, b.dtype.kind)
Результат:
int32 i float64 f
Автоматическая разрядность целого зависит от версии и платформы, поэтому не подменяйте требования упражнения предположением об int32 или int64. Если условие запрещает явный dtype, проверяйте тип, полученный из исходных токенов.
Попробуйте самостоятельно
Ниже — отдельное задание с другими данными. Напишите решение и запустите проверку кода без регистрации. Для последовательного обучения откройте курс.
Диагностика dtype: целые против вещественных токенов в одномерном массиве
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinодну строку — метку режима: строго"int"или строго"float". - Читает вторую строку с
nтокенами, разделёнными пробелами. - Если метка равна
"int"— преобразует каждый токен черезint()и создаёт одномерныйndarrayчерезnp.arrayбез явногоdtype. - Если метка равна
"float"— преобразует каждый токен черезfloat()и создаёт одномерныйndarrayчерезnp.arrayбез явногоdtype. - Выводит в
stdoutодну строку:shape ndim size dtypeитогового массива.
Формат shape — строго как у Python: (n,).
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
метка токен_1 токен_2 ... токен_n
Первая строка — слово int или float. Вторая строка — n токенов через пробел. Гарантируется n ≥ 1.
Формат вывода
Одна строка: shape ndim size dtype, например (4,) 1 4 int64 или (4,) 1 4 float64.
Пример
- Ввод
int 5 10 15 20 25
- Вывод
(5,) 1 5 int64
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- NumPy shape, ndim, size и dtype: атрибуты массива и задача
- Срезы двумерного массива NumPy: строки, столбцы и шаг
- NumPy reshape и transpose: разница на примере и задача
- NumPy newaxis и squeeze: вектор-строка и вектор-столбец
- NumPy: целочисленная индексация, присваивание и маска
- NumPy zeros, ones и full: dtype — пример и задача
