Исследование типов данных NumPy

NumPyNumPyBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы рассмотрим типы данных в библиотеке NumPy для Python. Мы также изучим синтаксис объекта dtype и его параметры.

Советы по работе с ВМ

После запуска виртуальной машины перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы приступить к практике в Jupyter Notebook.

Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Введение в объект NumPy dtype

В NumPy все элементы массива являются объектами данных типа, которые также известны как NumPy dtypes. Объект данных типа используется для реализации фиксированного размера памяти, соответствующей массиву.

Он в основном предоставляет нам информацию о следующем:

  • Тип данных (например, integer, float или Python object)
  • Размер данных
  • Порядок байт (little-endian или big-endian)
  • В случае структурированного типа он сообщает нам о названиях полей, типе данных каждого поля и части памяти занимаемой каждым полем.
  • В случае, если тип данных является подмассивом, он сообщает нам о его форме и типе данных

Создание объекта NumPy dtype

Ниже приведен необходимый синтаксис для создания объекта 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: строка Unicode
  • V: фиксированный кусок памяти для других типов (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. Мы также рассмотрели различные числовые типы данных и несколько примеров для вашего понимания.