将一个 numpy 稀疏矩阵保存到文件中

Posted

技术标签:

【中文标题】将一个 numpy 稀疏矩阵保存到文件中【英文标题】:Save a numpy sparse matrix into file 【发布时间】:2014-08-25 08:35:41 【问题描述】:

我想将 sklearn.feature_extraction.text 中 TfidfVectorizer 的结果保存到文本文件中以备将来使用。正如我发现的,它是一个''类型的稀疏矩阵。但是,当我尝试使用以下代码保存它时

np.savetxt('Feature_TfIdf.txt', X_Tfidf, fmt='%2.6f')

我收到这样的错误

IndexError: tuple index out of range

【问题讨论】:

【参考方案1】:

为此使用joblib.dumpsklearn.externals.joblib.dump。 NumPy 没有得到 SciPy 稀疏矩阵。

【讨论】:

虽然np.savetxt 无法保存稀疏矩阵,因为它没有将其转换为文本的方法,但np.save 确实有效 - 它将稀疏矩阵包装在对象 dtype 数组中,并将其保存为二进制文件。 你能举个例子吗? @弗雷德【参考方案2】:

我设法通过将稀疏矩阵转换为完整矩阵然后保存矩阵并保存结果来解决问题。然而,这种方法对大型数组没有用,因此最好将矩阵保存为 .pkl 格式。

【讨论】:

【参考方案3】:

简单示例:

np.save('TfIdf.pkl',tfidf)

【讨论】:

以上是关于将一个 numpy 稀疏矩阵保存到文件中的主要内容,如果未能解决你的问题,请参考以下文章

将一个 numpy 稀疏矩阵转储到 libsvm 后形状不一样

Numpy/scipy 加载巨大的稀疏矩阵以在 scikit-learn 中使用

pyspark:将稀疏局部矩阵转换为 RDD

如何将 numpy.matrix 或数组转换为 scipy 稀疏矩阵

SciPy NumPy 和 SciKit-learn ,创建一个稀疏矩阵

如何将“SciPy 稀疏矩阵”转换为“NumPy 矩阵”?