gpt4 book ai didi

python - 使用 numpy.savez() 保存标题信息字典

转载 作者:太空狗 更新时间:2023-10-30 00:25:11 26 4
gpt4 key购买 nike

我正在尝试保存一组数据以及标题信息。目前,我正在使用 numpy.savez() 将标题信息(字典)保存在一个数组中,将数据保存在另一个数组中。

    data = [[1,2,3],[4,5,6]]
header = {'TIME': time, 'POSITION': position}
np.savez(filename, header=header, data=data)

但是,当我尝试加载和读取文件时,我无法为标题字典编制索引。

    arrays = np.load(filename)
header = arrays('header')
data = arrays('data')
print header['TIME']

我收到以下错误:

    ValueError: field named TIME not found.

在保存之前,标题的类型为“dict”。保存/加载后,输入“numpy.ndarray”。我可以将它转换回字典吗?或者是否有更好的方法来达到相同的结果?

最佳答案

np.savez 只保存 numpy 数组。如果你给它一个字典,它会在保存之前调用 np.array(yourdict)。所以这就是为什么您会看到类似 type(arrays['header']) 的内容为 np.ndarray:

arrays = np.load(filename)
h = arrays['header'] # square brackets!!

>>> h
array({'POSITION': (23, 54), 'TIME': 23.5}, dtype=object)

不过,如果你看一下它,你会注意到它是一个 0 维的单项数组,里面有一个字典:

>>> h.shape
()
>>> h.dtype
dtype('O') # the 'object' dtype, since it's storing a dict, not numbers.

所以你可以通过这样做来变通:

h = arrays['header'][()]

神秘的索引从 0d 数组中获取一个值:

>>> h
{'POSITION': (23, 54), 'TIME': 23.5}

关于python - 使用 numpy.savez() 保存标题信息字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22315595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com