栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用np.savez存储字典会产生意外结果吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用np.savez存储字典会产生意外结果吗?

可以恢复数据:

In [41]: a = {'0': {'A': array([1,2,3]), 'B': array([4,5,6])}}In [42]: np.savez('/tmp/model.npz', **a)In [43]: a = np.load('/tmp/model.npz')

注意,dtype是’object’。

In [44]: a['0']Out[44]: array({'A': array([1, 2, 3]), 'B': array([4, 5, 6])}, dtype=object)

而且数组中只有一项。该项目是Python字典!

In [45]: a['0'].sizeOut[45]: 1

您可以使用

item()
方法来检索值(注意:这 不是
items()
字典的 方法,也不是
NpzFile

类固有的任何
numpy.ndarray.item()
方法,而是
将数组中的值复制到标准Python标量的方法。在
object
dtype数组中,任何值Python标量保存在数组(甚至是字典)的单元格中:

In [46]: a['0'].item()Out[46]: {'A': array([1, 2, 3]), 'B': array([4, 5, 6])}In [47]: a['0'].item()['A']Out[47]: array([1, 2, 3])In [48]: a['0'].item()['B']Out[48]: array([4, 5, 6])

还原

a
为辞令:

In [84]: a = np.load('/tmp/model.npz')In [85]: a = {key:a[key].item() for key in a}In [86]: a['0']['A']Out[86]: array([1, 2, 3])


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611601.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号