我有一个NumPy浮点数数组,格式如下:
[sizeA,headerA,sizeA items,sizeB,headerB,sizeB items...sizeN,headerN,sizeN items]
由于我事先并不知道每个块有多少项,我现在手动进行跳转(遍历数组,检查num值并相应地跳到下一个块)并填充数据数据块。 我确信python有更复杂的方法来处理它而不需要迭代每个项目......
例如,3个数据块 - 一个具有两个值,第二个具有3个值,最后一个具有单个值(为清晰起见,删除标题部分)
示例输入:
[2.0,3.12345,0.9967,3.0,5.2345,0.345,0.023,1.0,4.2345]
我希望输出字典看起来像:
{'A':[3.12345,0.9967], 'B':[5.2345,0.345,0.023], 'C':[4.2345]}
答案 0 :(得分:1)
这可行,但可能不是最简单的解决方案:
a=[2.0,3.12345,0.9967,3.0,5.2345,0.345,0.023,1.0,4.2345]
keys=[a[0]] # list of the sizes
values=[]
i=[0]
while True:
i.append(int(sum(keys))+len(keys))
if i[-1]<len(a):
keys.append(a[i[-1]])
else:
break
values=[a[i[j]+1:i[j+1]] for j in range(len(i)-1)] #list of values
result =dict(zip(['a','b','c'],values))
输出:
{'a':[3.12345,0.997],'b':[5.2345,0.345,0.023],'c':[4.2345]}