将具有名称和numpy数组数据的字典写入文本文件问题

时间:2016-06-19 12:07:43

标签: python arrays numpy dictionary

我是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的方法吗?因为当我从头开始运行程序时(比如说第二天),所有数据都会被覆盖。我需要将所有数据保存在我的数据库中,以便将来存储样本。谢谢

1 个答案:

答案 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]])}