Spec-Zone.ru › NumPy 1.15

numpy.dtype

class numpy.dtype(obj, align=False, copy=False) [source]

Создать объект типа данных.

Массив NumPy является однородным и содержит элементы, описываемые объектом dtype. Объект dtype можно создать из различных комбинаций основных числовых типов.

Параметры:
obj

Объект, который нужно преобразовать в объект типа данных.

align : bool, optional

Добавить заполнение к полям, чтобы соответствовать тому, что выведет компилятор C для подобной C-структуры. Может быть применено только если obj является словарем или строкой, разделённой запятыми. Если создаётся структура dtype, это также устанавливает флаг принудительного выравнивания isalignedstruct.

copy : bool, optional

Создать новую копию объекта типа данных. Если False, результат может быть просто ссылкой на встроенный объект типа данных.

См. также

result_type

Примеры

Использование типа скаляра массива:

>>> np.dtype(np.int16)
dtype('int16')

Структурный тип, одно имя поля ‘f1’, содержащее int16:

>>> np.dtype([('f1', np.int16)])
dtype([('f1', '<i2')])

Структурный тип, одно поле с именем ‘f1’, которое само содержит структурный тип с одним полем:

>>> np.dtype([('f1', [('f1', np.int16)])])
dtype([('f1', [('f1', '<i2')])])

Структурный тип, два поля: первое поле содержит целое без знака, второе – целое 32-битовое:

>>> np.dtype([('f1', np.uint), ('f2', np.int32)])
dtype([('f1', '<u4'), ('f2', '<i4')])

Использование строк типов протокола массивов:

>>> np.dtype([('a','f8'),('b','S10')])
dtype([('a', '<f8'), ('b', '|S10')])

Использование разделённых запятыми форматов полей. Форма (2,3):

>>> np.dtype("i4, (2,3)f8")
dtype([('f0', '<i4'), ('f1', '<f8', (2, 3))])

Использование кортежей. int — это фиксированный тип, 3 — форма поля. void — это гибкий тип, здесь размера 10:

>>> np.dtype([('hello',(int,3)),('world',np.void,10)])
dtype([('hello', '<i4', 3), ('world', '|V10')])

Разделить int16 на 2 int8’s, названные x и y. 0 и 1 — смещения в байтах:

>>> np.dtype((np.int16, {'x':(np.int8,0), 'y':(np.int8,1)}))
dtype(('<i2', [('x', '|i1'), ('y', '|i1')]))

Использование словарей. Два поля с именами ‘gender’ и ‘age’:

>>> np.dtype({'names':['gender','age'], 'formats':['S1',np.uint8]})
dtype([('gender', '|S1'), ('age', '|u1')])

Смещения в байтах, здесь 0 и 25:

>>> np.dtype({'surname':('S25',0),'age':(np.uint8,25)})
dtype([('surname', '|S25'), ('age', '|u1')])
Атрибуты:
alignment

Требуемое выравнивание (байты) этого типа данных в соответствии с компилятором.

Дополнительная информация доступна в разделе C-API руководства.

base
byteorder

Символ, указывающий порядок байтов этого объекта типа данных.

Один из:

‘=’ родной
‘<’ маленький порядок байтов
‘>’ большой порядок байтов
‘|’ неприменимо

Все встроенные объекты типов данных имеют порядок байтов ‘=’ или ‘|’.

>>> dt = np.dtype('i2')
>>> dt.byteorder
'='
>>> # endian is not relevant for 8 bit numbers
>>> np.dtype('i1').byteorder
'|'
>>> # or ASCII strings
>>> np.dtype('S2').byteorder
'|'
>>> # Even if specific code is given, and it is native
>>> # '=' is the byteorder
>>> import sys
>>> sys_is_le = sys.byteorder == 'little'
>>> native_code = sys_is_le and '<' or '>'
>>> swapped_code = sys_is_le and '>' or '<'
>>> dt = np.dtype(native_code + 'i2')
>>> dt.byteorder
'='
>>> # Swapped code shows up as itself
>>> dt = np.dtype(swapped_code + 'i2')
>>> dt.byteorder == swapped_code
True
char

Уникальный код символа для каждого из 21 встроенного типа.

descr

Описание интерфейса PEP3118 типа данных.

fields

Словарь именованных полей, определённых для этого типа данных, или None.

flags

Флаги битов, описывающие то, как этот тип данных должен интерпретироваться.

Маски битов находятся в numpy.core.multiarray как константы ITEM_HASOBJECT, LIST_PICKLE, ITEM_IS_POINTER, NEEDS_INIT, NEEDS_PYAPI, USE_GETITEM, USE_SETITEM. Полное объяснение этих флагов находится в документации C-API; они в основном полезны для пользовательских типов данных.

hasobject

Булево значение, указывающее, содержит ли этот dtype какие-либо объекты с подсчётом ссылок в любых полях или подтипах.

isalignedstruct

Булево значение, указывающее, является ли dtype структурой, которая поддерживает выравнивание полей.

isbuiltin

Целое число, указывающее, как этот dtype связан со встроенными типами dtype.

isnative

Булево значение, указывающее, соответствует ли порядок байтов этого dtype порядку байтов платформы.

itemsize

Размер элемента этого объекта типа данных.

Для 18 из 21 типа это число фиксировано типом данных. Для гибких типов данных это число может быть любым.

kind

Код символа (один из ‘biufcmMOSUV’) определяющий общий тип данных.

b логическое
i целое со знаком
u целое без знака
f с плавающей точкой
c комплексное с плавающей точкой
m timedelta
M datetime
O объект
S (байт-)строка
U Unicode
V пустое
metadata
name

Имя ширины бита для этого типа данных.

names

Упорядоченный список имён полей, или None если полей нет.

ndim

Количество измерений подмассива, если этот тип данных описывает подмассив, и 0 в противном случае.

num

Уникальное число для каждого из 21 встроенного типа.

Они примерно упорядочены от наименьшей к наибольшей точности.

shape

Кортеж формы подмассива, если этот тип данных описывает подмассив, и () в противном случае.

str

Строка типов протокола массива этого объекта типа данных.

subdtype

Кортеж (item_dtype, shape) если этот dtype описывает подмассив, и None в противном случае.

type

Объект типа, используемый для создания скаляра этого типа данных.

Методы

newbyteorder([new_order]) Возвращает новый dtype с другим порядком байтов.

© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.dtype.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API