numpy.dtype#
- class numpy.dtype(dtype, align=False, copy=False[, metadata])[源代码]#
创建一个数据类型对象.
一个 numpy 数组是同质的,并且包含由一个 dtype 对象描述的元素.一个 dtype 对象可以由不同的基本数值类型的组合构造.
- 参数:
- dtype
要转换为数据类型对象的对象.
- alignbool, 可选
为字段添加填充,以匹配 C 编译器对类似 C 结构体的输出.仅当 obj 是字典或逗号分隔的字符串时,才可以为
True
.如果正在创建结构体 dtype,这还会设置一个粘性对齐标志isalignedstruct
.- copybool, 可选
创建数据类型对象的新副本.如果
False
,结果可能只是对内置数据类型对象的引用.- metadatadict, 可选
一个带有 dtype 元数据的可选字典.
参见
示例
使用数组标量类型:
>>> import numpy as np >>> 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.uint64), ('f2', np.int32)]) dtype([('f1', '<u8'), ('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',(np.int64,3)),('world',np.void,10)]) dtype([('hello', '<i8', (3,)), ('world', 'V10')])
将
int16
分成两个int8
,分别称为 x 和 y.0 和 1 是以字节为单位的偏移量:>>> np.dtype((np.int16, {'x':(np.int8,0), 'y':(np.int8,1)})) dtype((numpy.int16, [('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
根据编译器,此数据类型所需的对其方式(字节).
base
返回子数组基本元素的数据类型,无论它们的维度或形状如何.
byteorder
指示此数据类型对象的字节顺序的字符.
char
每个不同的内置类型都有一个唯一的字符代码.
descr
__array_interface__ 数据类型的描述.
fields
为此数据类型定义的命名字段字典,或
None
.flags
描述如何解释此数据类型的位标志.
hasobject
布尔值,指示此dtype的任何字段或子dtype中是否包含任何引用计数对象.
isalignedstruct
布尔值,指示dtype是否是一个维护字段对齐的结构体.
isbuiltin
整数,表示此数据类型与内置数据类型的关系.
isnative
布尔值,指示此数据类型的字节顺序是否为本机平台的字节顺序.
itemsize
这个数据类型对象的元素大小.
kind
一个字符代码(’biufcmMOSUV’ 中的一个),用于标识数据的一般类型.
metadata
要么
None
要么是一个只读的元数据字典(mappingproxy).name
此数据类型的位宽名称.
names
字段名称的有序列表,如果没有字段则为
None
.ndim
如果此数据类型描述的是一个子数组,则子数组的维数,否则为
0
.num
每个不同的内置类型的唯一编号.
shape
如果此数据类型描述的是一个子数组,则为子数组的形状元组,否则为
()
.str
此数据类型对象的数组协议类型字符串.
subdtype
如果这个
dtype
描述的是一个子数组,则为元组(item_dtype, shape)
,否则为 None.- type
方法
newbyteorder
([new_order])返回一个具有不同字节顺序的新数据类型.