首页 > 编程语言 > 详细

结构化数组

时间:2020-04-07 17:30:18      阅读:61      评论:0      收藏:0      [点我收藏+]

结构化数组是ndarray,其数据类型是由一系列命名字段组织的简单数据类型组成

技术分享图片

 

 

 

结构化数据类型

结构化数据类型创建

元组列表,每个字段一个元组

每个元组都具有以下形式(字段名称、数据类型、形状),其中Shape是可选的。 fieldname 是字符串(如果使用标题,则为元组,请参见下面的字段标题), datatype 可以是任何可转换为数据类型的对象,而 shape 是指定子数组形状的整数元组。

技术分享图片

 

 

 

如果 fieldname 是空字符串 ‘‘ ,则将为字段指定格式为 f# 的默认名称, 其中 # 是字段的整数索引,从左侧开始从0开始计数:

技术分享图片

 

 

 

逗号分隔的数据类型规范字符串

在这个速记符号中,任何 字符串dtype规范 都可以在字符串中使用, 并用逗号分隔。 字段的项目大小和字节偏移是自动确定的,并且字段名称被赋予默认名称 f0f1等。

技术分享图片

 

 

 

字段参数组字典

这是最灵活的规范形式,因为它允许控制字段的字节偏移和结构的项目大小。

字典有两个必需键 “names” 和 “format”,以及四个可选键 “offsets”、“itemsize”、“Aligned” 和 “title”。 名称和格式的值应该分别是相同长度的字段名列表和dtype规范列表。 可选的 “offsets” 值应该是整数字节偏移量的列表,结构中的每个字段都有一个偏移量。 如果未给出 “Offsets” ,则自动确定偏移量。可选的 “itemsize” 值应该是一个整数, 描述dtype的总大小(以字节为单位),它必须足够大以包含所有字段。

技术分享图片

 

 

 

操作和显示结构化数据类型

可以names 在dtype对象的属性中找到结构化数据类型的字段名称列表:

技术分享图片

 

 

 

dtype对象还具有类似字典的属性,fields其键是字段名称(和字段标题,见下文), 其值是包含每个字段的dtype和字节偏移量的元组。

技术分享图片

 

 

 

索引和分配给结构化数组

#将数据分配给结构化数组

 

从Python本机类??型(元组)分配

为结构化数组赋值的最简单方法是使用python元组。每个赋值应该是一个长度等于数组中字段数的元组,而不是列表或数组,因为它们将触发numpy的广播规则。元组的元素从左到右分配给数组的连续字段:

技术分享图片

 

 

 

Scalars的赋值

分配给结构化元素的标量将分配给所有字段。将标量分配给结构化数组时,或者将非结构化数组分配给结构化数组时,会发生这种情况:

技术分享图片

 

 

 结构化数组也可以分配给非结构化数组,但前提是结构化数据类型只有一个字段:

技术分享图片

 

 

 

索引结构化数组

#访问单个字段

技术分享图片

 

 

生成的数组是原始数组的视图。它共享相同的内存位置,写入视图将修改原始数组。

技术分享图片

 

 

技术分享图片

 

 

 

 

 

结构化数组

原文:https://www.cnblogs.com/leon-joker/p/12653422.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!