numpy.dtype#

class numpy.dtype(dtype, align=False, copy=False, **kwargs)[source]#

dtype(dtype, align=False, copy=False, [metadata])

创建数据类型对象。

numpy 数组是同质的,并且包含由 dtype 对象描述的元素。dtype 对象可以由不同的基本数值类型的组合来构造。

参数:
dtype

要转换为数据类型对象的对象。

alignbool, optional

为字段添加填充,以匹配 C 编译器为类似 C 结构体输出的内容。仅当 obj 是字典或逗号分隔字符串时,此选项才能为 True。如果正在创建结构体 dtype,这还将设置一个粘性对齐标志 isalignedstruct

copybool, optional

创建数据类型对象的副本。如果为 False,则结果可能只是一个指向内置数据类型对象的引用。

metadatadict, optional

可选的元数据字典。

另请参阅

result_type

示例

使用数组标量类型

>>> 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’ 中的一个)。

metadata

None 或一个只读元数据字典(mappingproxy)。

name

此数据类型的位宽度名称。

names

字段名称的有序列表,如果没有字段则为 None

ndim

如果此数据类型描述了子数组,则为子数组的维度数,否则为 0

num

21 种不同内置类型的唯一编号。

shape

如果此数据类型描述了子数组,则为子数组的形状元组,否则为 ()

str

此数据类型对象的数组协议类型字符串。

subdtype

如果此 dtype 描述了子数组,则为元组 (item_dtype, shape),否则为 None。

type

方法

newbyteorder([new_order])

返回具有不同字节顺序的新 dtype。