<p><strong>编辑:</strong>SciPy 1.19现在有<a href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.save_npz.html#scipy.sparse.save_npz" rel="noreferrer">^{<cd1>}</a>和<a href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.load_npz.html#scipy.sparse.load_npz" rel="noreferrer">^{<cd2>}</a>。</p>
<pre><code>from scipy import sparse
sparse.save_npz("yourmatrix.npz", your_matrix)
your_matrix_back = sparse.load_npz("yourmatrix.npz")
</code></pre>
<p>对于这两个函数,<code>file</code>参数也可以是类似文件的对象(即<code>open</code>的结果),而不是文件名。</p>
<hr/>
<p>从Scipy用户组得到答案:</p>
<blockquote>
<p>A csr_matrix has 3 data attributes that matter: <code>.data</code>, <code>.indices</code>, and <code>.indptr</code>. All are simple ndarrays, so <code>numpy.save</code> will work on them. Save the three arrays with <code>numpy.save</code> or <code>numpy.savez</code>, load them back with <code>numpy.load</code>, and then recreate the sparse matrix object with:</p>
<pre><code>new_csr = csr_matrix((data, indices, indptr), shape=(M, N))
</code></pre>
</blockquote>
<p>例如:</p>
<pre><code>def save_sparse_csr(filename, array):
np.savez(filename, data=array.data, indices=array.indices,
indptr=array.indptr, shape=array.shape)
def load_sparse_csr(filename):
loader = np.load(filename)
return csr_matrix((loader['data'], loader['indices'], loader['indptr']),
shape=loader['shape'])
</code></pre>