【发布时间】:2019-05-28 19:00:38
【问题描述】:
我正在尝试将.npz 文件转换为.csv 格式,但它给出了以下关键错误
KeyError: '0 is not a file in the archive'
我有一个稀疏矩阵,我将其转换为.npz 格式。然后我使用np.load() 加载了 npz 文件。我尝试使用np.savetxt() 将加载的 npz 文件转换为 csv,但它给出了以下错误
KeyError: '0 is not a file in the archive'.
这个关键错误是什么意思以及如何解决?
我尝试了以下代码:
DF = np.load("DF_tfidf.npz")
np.savetxt("DF.csv",DF)
【问题讨论】:
-
np.load给你一个像对象一样的字典。实际的数组通过名称或字典key访问。因此,简单地将这个对象传递给savetxt函数是没有意义的。我怀疑你是在尝试使用这些函数而不了解它们产生和需要什么。 -
如果你创建了一个
scipy稀疏矩阵,并用save_npz保存它,你又增加了一层复杂性。虽然可以使用np.load读取这样的文件,但您必须先了解保存格式。相反,如果您使用load_npz,您会得到一个稀疏矩阵,就像您开始时一样。将其保存为csv文本格式是不同的主题。最简单的方法是将其转换为密集数组,使用toarray(),并使用savetxt写入。但是,如果稀疏矩阵很大,您最终可能会得到MemoryError。 -
您希望
csv究竟是什么样子? -
问题与
machine-learning无关 - 请不要向标签发送垃圾邮件(已删除)。
标签: python-3.x csv numpy scipy sparse-matrix