我有下面的记录数组。但是每个元素都需要它自己的记录数组来描述关于该元素的信息。现在这不是代码,我只是以可读的方式显示信息。例如:
我有一个寄存器集合,其属性包括宽度和偏移量。在
寄存器列表
Registers offsets width
Register_1 1 5
Register_2 2 10
Register_3 3 15
Register_4 4 20
每个寄存器还具有一组字段,这些字段具有特定的值,如位和长度
在寄存器_1中,我们有以下字段
^{pr2}$}
实际的python代码
dtype={
'names' : ('name','offset','width'),
'formats' : ('U20','U20','U20')}
registers= np.zeros(10,dtype)
registers[0]=('register_1','1','5')
registers[1]=('register_2','2','10')
registers[2]=('register_3','3','15')
registers[3]=('register_4','4','20')
现在我想将每个寄存器与它们的字段相关联,首先想到的是在寄存器记录数组中嵌套另一个记录数组。在
python伪代码
type={
'names' : ('name','bit','length'),
'formats' : ('U20','U20','U20')}
fields= np.zeros(10,type)
dtype={
'names' : ('name','offset','width',fields),
'formats' : ('U20','U20','U20','U20')}
regsiters= np.zeros(10,dtype)
有什么建议吗?在
谢谢你!在
把你的
type
(坏名字!)进入dtype
:构建一个组合
^{pr2}$dtype
。注意'fields'的格式是(dt1,3)
-即由3个dt1
类型的元素组成的子数组。在填写姓名:
和其他2个字段:
registers[0]
元素的fields
值可以用相同的方式填充:既然
registers
有4个字段,就不能用以下内容填充其中3个字段:元组包含了“fields”字段所需的所有值(为什么选择这样令人困惑的名称?)。在
用
dtype
dt1
创建一个数组,并填充它。在现在可以将它作为值包含在
registers
元组中。在我可以通过以下方式将字段名复制到其他寄存器:
在
新数据类型:
将值赋给
registers[0]
。regfield
我先前定义的3元素数组。在显示与我们以前的类似,但是现在每个寄存器可以有不同数量的
fields
。在我们可以通过查看
fields' field of
寄存器[0]is the
regfield`数组中的对象的id来验证它们。在相关问题 更多 >
编程相关推荐