numpy.dtype#
- class numpy.dtype(dtype, align=False, copy=False[, metadata])[源代码]#
创建一个数据类型对象.
numpy 数组是同质的,包含由 dtype 对象描述的元素.dtype 对象可以从基本数字类型的不同组合来构建.
- 参数:
- dtype
要转换为数据类型对象的对象.
- 对齐bool, 可选
向字段添加填充,以匹配 C 编译器为类似的 C 结构输出的内容.仅当 obj 是字典或逗号分隔的字符串时,才能为
True.如果要创建结构体 dtype,这将同时设置粘性对齐标志isalignedstruct.- copybool, 可选
创建数据类型对象的新副本.如果
False,则结果可能只是对内置数据类型对象的引用.- 元数据dict,可选
带有 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 与内置 dtype 的关系.
isnative布尔值,指示此 dtype 的字节顺序是否为平台的本机字节顺序.
itemsize此数据类型对象元素的尺寸.
kind一个字符代码(‘biufcmMOSTUV’ 之一),用于标识数据的一般类型.
metadataNone或元数据的只读字典 (mappingproxy).name此数据类型的位宽名称.
names字段名称的有序列表,如果没有字段则为
None.ndim如果此数据类型描述子数组,则为子数组的维数,否则为
0.num每种 21 种不同的内置类型的唯一编号.
shape如果此数据类型描述子数组,则为子数组的形状元组,否则为
().str此数据类型对象的数组协议类型字符串.
subdtype如果此
dtype描述一个子数组,则为元组(item_dtype, shape),否则为 None.- 类型
方法
newbyteorder([new_order])返回具有不同字节顺序的新 dtype.