结构化数组是ndarray,它的数据类型是由一些简单的数据类型组成的结构,这些数据类型按命名字段的序列组织。例如:
这里x是一个长度为2的一维数组,其数据类型为具有三个字段结构:
1.长度为10或更短的字符串,名称为“name”
2.一个32位整数“age”和3
3.一个32位浮点数,名称为“weight”
如果x在位置1索引,可以得到一个结构:
可以通过使用字段名称建立索引来访问和修改结构化数组和各个字段:
结构化数据类型被设计成能够模仿C语言中的结构,并共享类似的内存布局。它们用于与C代码进行接口,以及对结构化缓冲区进行低级操作,例如解释二进制blob。为此,它们支持特殊功能,如子数组、嵌套数据类型和联合,并允许控制结构的内存布局。
结构化数据类型
可以将结构化数据类型视为具有一定长度的字节序列(结构的itemssize),它被解释为字段的集合。每个字段在结构中都有一个名称、数据类型、字节偏移量。字段的数据类型可以是任何numpy数据类型,包括其它结构化数据类型,也可以是数组的子数据类型,其行为类似于指定形状的ndarray。字段的偏移是任意的,并且字段甚至可能重叠,这些