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, результат может быть просто ссылкой на встроенный объект типа данных.
См. также
Примеры
Использование типа скаляра массива:
>>> 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на 2int8’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