Введение
В этом практическом занятии мы рассмотрим типы данных в библиотеке NumPy для Python. Мы также изучим синтаксис объекта dtype и его параметры.
Советы по работе с ВМ
После запуска виртуальной машины перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы приступить к практике в Jupyter Notebook.
Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Разбор объекта dtype NumPy
В NumPy все элементы массива являются объектами данных типа, которые также известны как NumPy dtypes. Объект данных типа используется для реализации фиксированного размера памяти, соответствующей массиву.
Он в основном предоставляет нам информацию о следующем:
- Тип данных (например,
integer,floatили Pythonobject) - Размер данных
- Порядок байт (little-endian или big-endian)
- В случае структурированного типа он сообщает нам о названиях полей, типе данных каждого поля и части памяти занимаемой каждым полем.
- В случае, если тип данных является подмассивом, он сообщает нам о его форме и типе данных
Создание объекта dtype NumPy
Ниже приведен необходимый синтаксис для создания объекта dtype:
numpy.dtype(object, align, copy)
Ниже описаны аргументы конструктора, приведенного выше:
- object: Этот аргумент используется для представления объекта, который должен быть преобразован в тип данных.
- align: Это необязательный аргумент. Он используется для добавления-padding к полям, чтобы соответствовать тому, что бы выдал компилятор C для подобной C-структуры. Этот аргумент может быть установлен в любое булево значение.
- copy: Этот аргумент используется для создания копии объекта
dtypeи он также является необязательным аргументом.
Числовые типы данных в NumPy
Библиотека NumPy в основном предоставляет шире диапазон числовых типов данных, чем это делает Python. Список числовых типов данных приведен в таблице ниже:
| № | Тип данных | Описание |
|---|---|---|
| 1 | bool_ |
Используется для представления булевых значений, указывающих на истину или ложь. Сохраняется как байт. |
| 2 | int_ |
Это стандартный тип целого числа. Он идентичен типу long в C, который обычно содержит 64 или 32-битное целое число. |
| 3 | intc |
Похож на целый тип в C (C int), так как представляет 32 или 64-битное целое число. |
| 4 | intp |
Используется для представления целых чисел, которые используются для индексирования. |
| 5 | int8 |
Это 8-битное целое число, идентичное байту. Диапазон значений от -128 до 127. |
| 6 | int16 |
Это 2-байтовое (16-битное) целое число, а диапазон от -32768 до 32767. |
| 7 | int32 |
Это 4-байтовое (32-битное) целое число. Диапазон от -2147483648 до 2147483647. |
| 8 | int64 |
Это 8-байтовое (64-битное) целое число, и диапазон от -9223372036854775808 до 9223372036854775807. |
| 9 | uint8 |
Это 1-байтовое (8-битное) беззнаковое целое число. |
| 10 | uint16 |
Это 2-байтовое (16-битное) беззнаковое целое число. |
| 11 | uint32 |
Это 4-байтовое (32-битное) беззнаковое целое число. |
| 12 | uint64 |
Это 8-байтовое (64-битное) беззнаковое целое число. |
| 13 | float_ |
Идентичен float64. |
| 14 | float16 |
Используется для представления полуточного вещественного числа. 5 битов отведено под экспоненту. 10 битов отведено под мантиссу, и 1 бит отведен под знак. |
| 15 | float32 |
Используется для представления одинарной точности вещественного числа. 8 битов отведено под экспоненту, 23 бита отведено под мантиссу, и 1 бит отведен под знак. |
| 16 | float64 |
Используется для представления двойной точности вещественного числа. 11 битов отведено под экспоненту, 52 бита отведено под мантиссу, 1 бит используется для знака. |
| 17 | complex_ |
Идентичен complex128. |
| 18 | complex64 |
Используется для представления комплексного числа, где действительная и мнимая части занимают по 32 бита каждый. |
| 19 | complex128 |
Используется для представления комплексного числа, где действительная и мнимая части занимают по 64 бита каждый. |
Символы, используемые для представления dtype в NumPy
Ниже приведен список символов, которые используются для представления dtype в NumPy:
i: целое числоb: булевоu: беззнаковое целое числоf: вещественное числоc: комплексное вещественное числоm: временной интервалM: дата и времяO: объектS: строкаU: строка UnicodeV: фиксированный кусок памяти для других типов (void)
Примеры
Пример 1: Поиск типа данных массива
Попробуем определить тип данных массива, содержащего строки:
import numpy as np
ar1 = np.array(['chair', 'book', 'notebook'])
print(ar1.dtype)
Результат:
<U8
Пример 2: Создание объекта dtype
Можно создать объект dtype с использованием функции numpy.dtype.
import numpy as np
dt1 = np.dtype(np.int64)
print (dt1)
Результат:
int64
Пример 3: Использование более короткой записи числовых типов данных
В следующем примере мы будем использовать более короткую запись числовых типов данных:
import numpy as np
a = np.dtype('i4')
print (a)
Результат:
int32
Пример 4: Создание структурированного объекта dtype
Создадим структурированный тип данных и применим его к объекту ndarray:
import numpy as np
## информация с ключом и значением
a = np.dtype([('rollno',np.int16)])
print(a)
a = np.array([(101,),(201,),(301,)], dtype=a)
print(a)
Результат:
[('rollno', '<i2')]
[(101,) (201,) (301,)]
Пример 5: Изменение типа данных
В следующем примере мы изменим тип данных с float на integer, используя int в качестве параметра значения:
import numpy as np
ar= np.array([1.1, 2.1, 3.1])
newarr = ar.astype(int)
print(newarr)
print(newarr.dtype)
Результат:
[1 2 3]
int64
Резюме
В этом практическом занятии мы рассмотрели концепцию типов данных в массиве. Мы увидели, как объект dtype используется для указания типа данных значений, его синтаксис и параметры, необходимые для объекта dtype. Мы также рассмотрели различные числовые типы данных и несколько примеров для вашего понимания.



