从 0-d numpy 数组中恢复字典

recover dict from 0-d numpy array(从 0-d numpy 数组中恢复字典)
本文介绍了从 0-d numpy 数组中恢复字典的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

发生的事情是我(错误地)使用命令 numpy.save() 保存了一个字典(没有显示错误消息),现在我需要恢复字典中的数据.当我用 numpy.load() 加载它时,它的类型为 (numpy.ndarray) 并且是 0-d,所以它不再是字典,我可以t 访问其中的数据,0-d 数组是不可索引的,所以做类似

What happened is that I (by mistake) saved a dictionary with the command numpy.save() (no error messages shown) and now I need to recover the data in the dictionary. When I load it with numpy.load() it has type (numpy.ndarray) and is 0-d, so it is not a dictionary any more and I can't access the data in it, 0-d arrays are not index-able so doing something like

mydict = numpy.load('mydict')
mydict[0]['some_key'] 

不起作用.我也试过了

recdict = dict(mydict)

但这也没有用.

为什么当我用 numpy.save() 保存字典时 numpy 没有警告我?

Why numpy didn't warn me when I saved the dictionary with numpy.save()?

有没有办法恢复数据?

提前致谢!

推荐答案

使用 mydict.item() 以 Python 标量的形式获取数组元素.

Use mydict.item() to obtain the array element as a Python scalar.

>>> import numpy as np
>>> np.save('/tmp/data.npy',{'a':'Hi Mom!'})
>>> x=np.load('/tmp/data.npy')
>>> x.item()
{'a': 'Hi Mom!'}

这篇关于从 0-d numpy 数组中恢复字典的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)