我是python中的新手,我正在编写一些项目。我需要以字典格式保存一些数据{name:numpy array}(而不仅仅是一个字典)将其保存到文本文件中,然后从该文件中读取它。 我为此目的使用np.savetxt。
import numpy as np
from DIP import dip
name = 'name'
val = dip() #just some function to make an array
dict = {name : val} #create a dictionary
np.savetxt('text.txt', dict)
但是当我运行代码时出现此错误
File "D:\python3.4\lib\site-packages\numpy\lib\npyio.py", line 1116, in savetxt
ncol = X.shape[1]
IndexError: tuple index out of range
这是什么意思?或者也许我不能用np数组做这样的事情?我感谢任何帮助和建议。谢谢
编辑。 Pickle工作得非常好,但它是一种可以保留所有存储数据而不会覆盖txt的方法吗?因为当我从头开始运行程序时(比如说第二天),所有数据都会被覆盖。我需要将所有数据保存在我的数据库中,以便将来存储样本。谢谢
答案 0 :(得分:0)
在numpy.savetxt
中,您无法保存字典。要保存字典,您可以使用pickle
。
在pickle
文件中加载字典。
In [1]: pickle_obj = open("dicts.pickle","wb")
In [2]:print dict
{'name': matrix([[1],
[2]])}
In [3]: pickle.dump(dict, pickle_obj)
In [4]: pickle_obj.close()
从泡菜文件中读取
In [5]: pickle_obj = open("dicts.pickle", "rb")
In [6]: dict = pickle.load(pickle_obj)
In [7]: pickle_obj.close()
In [8]:print dict
{'name': matrix([[1],
[2]])}