擅长:python、mysql、java
<p>也许你可以看一看SciPy的<a href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.coo_matrix.html" rel="nofollow noreferrer">Coordinate-based sparse matrix</a>。在这种情况下,SciPy将创建一个稀疏矩阵(针对如此大的空矩阵进行了优化),并使用其坐标格式,您可以根据需要访问和修改数据</p>
<p>根据其文件:</p>
<pre class="lang-py prettyprint-override"><code>>>> from scipy.sparse import coo_matrix
>>> # Constructing a matrix using ijv format
>>> row = np.array([0, 3, 1, 0])
>>> col = np.array([0, 3, 1, 2])
>>> data = np.array([4, 5, 7, 9])
>>> m = coo_matrix((data, (row, col)), shape=(4, 4))
>>> m.toarray()
array([[4, 0, 9, 0],
[0, 7, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 5]])
</code></pre>
<p>它不创建矩阵,而是创建一组带有值的坐标,这比仅用零填充矩阵占用的空间要小得多</p>
<pre class="lang-py prettyprint-override"><code>>>> from sys import getsizeof
>>> getsizeof(m)
56
>>> getsizeof(m.toarray())
176
</code></pre>