创建对角numpy数组时出现内存问题

qlckcl4x  于 2022-12-23  发布在  其他
关注(0)|答案(1)|浏览(124)

我创建了一个对角numpy数组:

a = numpy.float32(numpy.random.rand(10))
a = numpy.diagonal(a)

但是,由于我的矩阵非常大,我将面对MemoryError。有什么办法可以保存内存吗?

gopyfrb3

gopyfrb31#

处理这种情况的最佳方法是使用scipy.sparse.diags创建稀疏矩阵,如下所示:

a = numpy.float32(numpy.random.rand(10))
a = sparse.diags(a)

如果对角numpy数组的形状是n*n,使用sparse.diags将得到一个小n倍的矩阵。几乎所有的矩阵运算都支持稀疏矩阵。

相关问题