NumPy поддерживает гораздо большее разнообразие числовых типов, чем Python. В следующей таблице показаны различные скалярные типы данных, определенные в NumPy.
Sr.No. | Типы данных и описание |
---|---|
1 |
bool_ Логическое значение (True или False), хранящееся в байтах |
2 |
int_ Целочисленный тип по умолчанию (такой же, как C long; обычно либо int64, либо int32) |
3 |
ИНТЕРК Идентичен C int (обычно int32 или int64) |
4 |
INTP Целое число, используемое для индексации (так же, как C ssize_t; обычно либо int32, либо int64) |
5 |
int8 Байт (от -128 до 127) |
6 |
int16 Целое число (от -32768 до 32767) |
7 |
int32 Целое число (от -2147483648 до 2147483647) |
8 |
int64 Целое число (от -9223372036854775808 до 9223372036854775807) |
9 |
uint8 Целое число без знака (от 0 до 255) |
10 |
uint16 Целое число без знака (от 0 до 65535) |
11 |
uint32 Целое число без знака (от 0 до 4294967295) |
12 |
uint64 Целое число без знака (от 0 до 18446744073709551615) |
13 |
float_ Сокращение для float64 |
14 |
float16 Поплавок половинной точности: знаковый бит, 5-битная экспонента, 10-битная мантисса |
15 |
float32 Поплавок одинарной точности: знаковый бит, экспонента 8 бит, мантисса 23 бита |
16 |
float64 Поплавок двойной точности: знаковый бит, экспонента 11 бит, мантисса 52 бита |
17 |
сложный_ Сокращение для complex128 |
18 |
complex64 Комплексное число, представленное двумя 32-битными числами (действительные и мнимые компоненты) |
19 |
complex128 Комплексное число, представленное двумя 64-битными числами с плавающей точкой (действительная и мнимая компоненты) |
bool_
Логическое значение (True или False), хранящееся в байтах
int_
Целочисленный тип по умолчанию (такой же, как C long; обычно либо int64, либо int32)
ИНТЕРК
Идентичен C int (обычно int32 или int64)
INTP
Целое число, используемое для индексации (так же, как C ssize_t; обычно либо int32, либо int64)
int8
Байт (от -128 до 127)
int16
Целое число (от -32768 до 32767)
int32
Целое число (от -2147483648 до 2147483647)
int64
Целое число (от -9223372036854775808 до 9223372036854775807)
uint8
Целое число без знака (от 0 до 255)
uint16
Целое число без знака (от 0 до 65535)
uint32
Целое число без знака (от 0 до 4294967295)
uint64
Целое число без знака (от 0 до 18446744073709551615)
float_
Сокращение для float64
float16
Поплавок половинной точности: знаковый бит, 5-битная экспонента, 10-битная мантисса
float32
Поплавок одинарной точности: знаковый бит, экспонента 8 бит, мантисса 23 бита
float64
Поплавок двойной точности: знаковый бит, экспонента 11 бит, мантисса 52 бита
сложный_
Сокращение для complex128
complex64
Комплексное число, представленное двумя 32-битными числами (действительные и мнимые компоненты)
complex128
Комплексное число, представленное двумя 64-битными числами с плавающей точкой (действительная и мнимая компоненты)
Числовые типы NumPy являются экземплярами объектов типа d (типа данных), каждый из которых имеет уникальные характеристики. Типы доступны как np.bool_, np.float32 и т. Д.
Тип данных Объекты (dtype)
Объект типа данных описывает интерпретацию фиксированного блока памяти, соответствующего массиву, в зависимости от следующих аспектов:
-
Тип данных (целое число, объект с плавающей точкой или объект Python)
-
Размер данных
-
Порядок байтов (с прямым порядком байтов или с прямым порядком байтов)
-
В случае структурированного типа, имена полей, тип данных каждого поля и часть блока памяти заняты каждым полем.
-
Если тип данных является подмассивом, его форма и тип данных
Тип данных (целое число, объект с плавающей точкой или объект Python)
Размер данных
Порядок байтов (с прямым порядком байтов или с прямым порядком байтов)
В случае структурированного типа, имена полей, тип данных каждого поля и часть блока памяти заняты каждым полем.
Если тип данных является подмассивом, его форма и тип данных
Порядок байтов определяется префиксом «<» или «>» типа данных. «<» означает, что кодировка имеет младший порядок (наименее значимый хранится в наименьшем адресе). ‘>’ означает, что кодировка имеет порядковый номер (самый старший байт хранится в наименьшем адресе).
Объект dtype создается с использованием следующего синтаксиса —
numpy.dtype(object, align, copy)
Параметры —
-
Object — для преобразования в объект типа данных
-
Align — при значении true добавляет поле к полю, чтобы сделать его похожим на C-struct
-
Копировать — создает новую копию объекта dtype. Если false, результатом является ссылка на встроенный объект типа данных
Object — для преобразования в объект типа данных
Align — при значении true добавляет поле к полю, чтобы сделать его похожим на C-struct
Копировать — создает новую копию объекта dtype. Если false, результатом является ссылка на встроенный объект типа данных
Пример 1
# using array-scalar type import numpy as np dt = np.dtype(np.int32) print dt
Выход выглядит следующим образом —
int32
Пример 2
#int8, int16, int32, int64 can be replaced by equivalent string 'i1', 'i2','i4', etc. import numpy as np dt = np.dtype('i4') print dt
Выход выглядит следующим образом —
int32
Пример 3
# using endian notation import numpy as np dt = np.dtype('>i4') print dt
Выход выглядит следующим образом —
>i4
В следующих примерах показано использование структурированного типа данных. Здесь имя поля и соответствующий скалярный тип данных должны быть объявлены.
Пример 4
# first create structured data type import numpy as np dt = np.dtype([('age',np.int8)]) print dt
Выход выглядит следующим образом —
[('age', 'i1')]
Пример 5
# now apply it to ndarray object import numpy as np dt = np.dtype([('age',np.int8)]) a = np.array([(10,),(20,),(30,)], dtype = dt) print a
Выход выглядит следующим образом —
[(10,) (20,) (30,)]
Пример 6
# file name can be used to access content of age column import numpy as np dt = np.dtype([('age',np.int8)]) a = np.array([(10,),(20,),(30,)], dtype = dt) print a['age']
Выход выглядит следующим образом —
[10 20 30]
Пример 7
Следующие примеры определяют структурированный тип данных, называемый student, со строковым полем «name», целочисленным полем «age» и полем с плавающей точкой «marks». Этот dtype применяется к объекту ndarray.
import numpy as np student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) print student
Выход выглядит следующим образом —
[('name', 'S20'), ('age', 'i1'), ('marks', '<f4')])
Пример 8
import numpy as np student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student) print a
Выход выглядит следующим образом —
[('abc', 21, 50.0), ('xyz', 18, 75.0)]
Каждый встроенный тип данных имеет код символа, который однозначно идентифицирует его.
‘b’ — логическое значение
‘i’ — (подписано) целое число
‘u’ — целое число без знака
‘f’ — с плавающей точкой
‘c’ — комплексная точка с плавающей точкой
‘m’ — timedelta
‘M’ — дата и время
‘O’ — (Python) объекты
‘S’, ‘a’ — (byte-) строка
‘U’ — Юникод
‘V’ — необработанные данные (недействительные)