我创建了一个对角numpy数组:
a = numpy.float32(numpy.random.rand(10)) a = numpy.diagonal(a)
但是,由于我的矩阵非常大,我将面对MemoryError。有什么办法可以保存内存吗?
MemoryError
gopyfrb31#
处理这种情况的最佳方法是使用scipy.sparse.diags创建稀疏矩阵,如下所示:
scipy.sparse.diags
a = numpy.float32(numpy.random.rand(10)) a = sparse.diags(a)
如果对角numpy数组的形状是n*n,使用sparse.diags将得到一个小n倍的矩阵。几乎所有的矩阵运算都支持稀疏矩阵。
1条答案
按热度按时间gopyfrb31#
处理这种情况的最佳方法是使用
scipy.sparse.diags
创建稀疏矩阵,如下所示:如果对角numpy数组的形状是n*n,使用sparse.diags将得到一个小n倍的矩阵。几乎所有的矩阵运算都支持稀疏矩阵。