numpy.dtype#
- class numpy.dtype(dtype, align=False, copy=False[, metadata])[源代码]#
创建一个数据类型对象。
NumPy 数组是同构的,并包含由 dtype 对象描述的元素。dtype 对象可以由基本数值类型的不同组合构建。
- 参数:
- dtype
要转换为数据类型对象的目标。
- align布尔型, 可选
为字段添加填充,使其与 C 编译器为类似 C 结构体输出的内容匹配。仅当 obj 是字典或逗号分隔的字符串时,才能设置为
True
。如果正在创建结构体 dtype,这还会设置一个粘性对齐标志isalignedstruct
。- copy布尔型, 可选
创建数据类型对象的新副本。如果为
False
,结果可能只是对内置数据类型对象的引用。- metadata字典, 可选
一个可选的字典,包含 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')])])
结构化类型,两个字段:第一个字段包含无符号整数,第二个字段包含 int32
>>> 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
细分为 2 个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
返回子数组基本元素的 dtype,无论其维度或形状如何。
byteorder
一个字符,指示此数据类型对象的字节顺序。
char
21 种不同内置类型的唯一字符代码。
descr
数据类型的 __array_interface__ 描述。
fields
为此数据类型定义的命名字段字典,或
None
。flags
描述此数据类型如何解释的位标志。
hasobject
布尔值,指示此 dtype 是否在任何字段或子 dtype 中包含任何引用计数的对象。
isalignedstruct
布尔值,指示此 dtype 是否为维护字段对齐的结构体。
isbuiltin
整数,指示此 dtype 与内置 dtypes 的关系。
isnative
布尔值,指示此 dtype 的字节顺序是否是平台原生的。
itemsize
此数据类型对象的元素大小。
kind
一个字符代码('biufcmMOSTUV' 之一),用于标识数据的通用类型。
metadata
可以是
None
,也可以是元数据的只读字典 (mappingproxy)。name
此数据类型的位宽名称。
names
字段名称的有序列表,如果没有字段则为
None
。ndim
如果此数据类型描述子数组,则为子数组的维度数,否则为
0
。num
21 种不同内置类型的唯一数字。
shape
如果此数据类型描述子数组,则为子数组的形状元组,否则为
()
。str
此数据类型对象的数组协议类型字符串。
subdtype
如果此
dtype
描述子数组,则为元组(item_dtype, shape)
,否则为 None。- type
方法
newbyteorder
([new_order])返回一个具有不同字节顺序的新 dtype。