我有一个
scipy.sparse
矩阵 (csr_matrix()
)。但我需要将其保存为不是 .npz
格式的文件,而是作为常规 .txt
或 .csv
文件。我的问题是我没有足够的内存将稀疏矩阵转换为常规 np.array()
然后将其保存到文件中。有没有办法将数据作为稀疏矩阵存储在内存中,但直接将其作为常规矩阵保存到磁盘上?或者有没有办法“解压”一个 .npz
文件而不将其加载到 Python 内存中?
保存:
import numpy as np
from scipy import sparse
A = sparse.eye(10, format='csr')
np.savetxt('data.txt', A.data)
np.savetxt('indices.txt', A.indices)
np.savetxt('indptr.txt', A.indptr)
加载:
data = np.loadtxt('data.txt')
indices = np.loadtxt('indices.txt')
indptr = np.loadtxt('indptr.txt')
A = sparse.csr_matrix((data, indices, indptr))