<p>如果A是<code>csr_matrix</code>,则可以使用<a href="http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.sparse.csr_matrix.toarray.html#scipy.sparse.csr_matrix.toarray" rel="noreferrer">^{<cd2>}</a>(还有<code>.todense()</code>生成<code>numpy</code><code>matrix</code>,这也适用于<code>DataFrame</code>构造函数):</p>
<pre><code>df = pd.DataFrame(A.toarray())
</code></pre>
<p>然后您可以将其与<code>pd.concat()</code>一起使用。</p>
<pre><code>A = csr_matrix([[1, 0, 2], [0, 3, 0]])
(0, 0) 1
(0, 2) 2
(1, 1) 3
<class 'scipy.sparse.csr.csr_matrix'>
pd.DataFrame(A.todense())
0 1 2
0 1 0 2
1 0 3 0
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 3 columns):
0 2 non-null int64
1 2 non-null int64
2 2 non-null int64
</code></pre>
<p>在0.20版中,<code>pandas</code>引入了<a href="https://pandas.pydata.org/pandas-docs/stable/sparse.html#sparse-data-structures" rel="noreferrer">sparse data structures</a>,包括<a href="https://pandas.pydata.org/pandas-docs/stable/sparse.html#sparsedataframe" rel="noreferrer">^{<cd9>}</a>。</p>
<p>或者,可以将稀疏矩阵传递给<code>sklearn</code>,以避免在转换回<code>pandas</code>时内存不足。只需通过将<code>numpy</code><code>array</code>传递给<code>scipy.sparse.csr_matrix</code>构造函数并使用<code>scipy.sparse.hstack</code>来将其他数据转换为稀疏格式(请参见<a href="https://docs.scipy.org/doc/scipy/reference/sparse.html" rel="noreferrer">docs</a>)。</p>