numpy.dtype¶
- class
numpy.
dtype
[source]¶ 创建数据类型对象。
numpy数组是同构的,并且包含由dtype对象描述的元素。dtype对象可以由基本数值类型的不同组合构成。
参数: obj
要转换为数据类型对象的对象。
align:bool,可选
向字段添加填充以匹配C编译器将为类似的C结构输出的内容。只有obj是字典或逗号分隔的字符串时,才可以
True
。如果正在创建struct dtype,则还会设置粘性对齐标记isalignedstruct
。copy:bool,可选
创建数据类型对象的新副本。如果
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')])])
结构化类型,两个字段:第一个字段包含一个unsigned int,第二个包含int32:
>>> 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',(np.int,3)),('world',np.void,10)]) dtype([('hello', '<i4', 3), ('world', '|V10')])
将
int16
细分为2int8
,称为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')])
属性
base
descr
数组类型的数组接口完全描述。 fields
为此数据类型定义的命名字段字典,或 None
。hasobject
布尔值,指示此dtype是否在任何字段或子类型中包含任何引用计数的对象。 isalignedstruct
布尔值,表示dtype是否为保持字段对齐的结构体。 isbuiltin
整数指示此dtype如何与内置的dtype相关。 isnative
布尔值,指示此dtype的字节顺序是否为平台本地的。 metadata
name
此数据类型的位宽名称。 names
字段名称的有序列表,如果没有字段,则为 None
。shape
如果此数据类型描述子数组,则子数组的形状元组,否则为 ()
。str
此数据类型对象的数组协议typestring。 subdtype
Tuple (item_dtype, shape)
if thisdtype
describes a sub-array, and None otherwise.方法
newbyteorder
([new_order])返回一个具有不同字节顺序的新dtype。