Учебники

NumPy — типы данных

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

Live Demo

# using array-scalar type 
import numpy as np 
dt = np.dtype(np.int32) 
print dt

Выход выглядит следующим образом —

int32

Пример 2

Live Demo

#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

Live Demo

# using endian notation 
import numpy as np 
dt = np.dtype('>i4') 
print dt

Выход выглядит следующим образом —

>i4

В следующих примерах показано использование структурированного типа данных. Здесь имя поля и соответствующий скалярный тип данных должны быть объявлены.

Пример 4

Live Demo

# first create structured data type 
import numpy as np 
dt = np.dtype([('age',np.int8)]) 
print dt 

Выход выглядит следующим образом —

[('age', 'i1')] 

Пример 5

Live Demo

# 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

Live Demo

# 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.

Live Demo

import numpy as np 
student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) 
print student

Выход выглядит следующим образом —

[('name', 'S20'), ('age', 'i1'), ('marks', '<f4')])

Пример 8

Live Demo

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’ — необработанные данные (недействительные)