将稀疏矩阵导出到文件
我有一个 scipy.sparse.csr 矩阵,想把它保存到一个CSV文件里。有没有办法在保存的时候保持这个矩阵的稀疏特性,并写入到CSV文件中呢?
2 个回答
1
现在使用Scipy 0.19,变得非常简单:
import scipy.sparse as sp
m = sp.csr_matrix([[1,0,0],[0,1,0],[0,0,1]])
sp.save_npz("file_name.npz", m)
将文件加载到内存中
new_m = sp.load_npz("file_name.npz")
8
SciPy这个库里有一些功能,可以用来读取和写入稀疏矩阵,格式是MatrixMarket。你可以通过scipy.io模块来实现这些功能,其中包括mmwrite这个函数:http://docs.scipy.org/doc/scipy/reference/generated/scipy.io.mmwrite.html
MatrixMarket格式和CSV有点像,但不是完全一样。它的开头有一行标题,里面包含了行数、列数和非零元素的数量,接下来每一行都是一个非零元素的信息。每行的信息包括行索引、列索引和对应的值。如果你写一个简单的脚本,把空格换成逗号,就能把它变成CSV格式了。