我想要稀疏化python中的一个简单“矩阵”:
np.array([[5.72756493, 0. , 0. ],
[2.86378246, 4.96021673, 0. ],
[5.72756493, 3.30681115, 2.33826859]])
我想将其简化为以下形式:
np.array([[5.72756493, 0. , 0. ],
[2.86378246, 4.96021673, 0. ],
[0., 3.30681115, 2.33826859]])
我确定numpy / scipy中必须有一些简单的函数可以处理此问题。我将仅使用小型3x3矩阵,因此它不一定是最优化的方法
答案 0 :(得分:1)
快速的网络搜索表明sparsification
是活跃的计算机科学研究领域。显然,该想法是通过增加零的比例来使矩阵在计算上更高效。这是通过将一些低幅度项归零,并对其他项进行某种采样来完成的。但是矩阵必须“在计算上是等效的”。
numpy
中没有类似的内容。 scipy
有一个sparse matrix
包。它可以从2d numpy
数组中生成一个稀疏矩阵,而不管它有多少个0。但是没有sparsifying
函数。以我的经验,scipy.sparse
仅在稀疏度在10%或更少(90%的零)数量级时才有效。
有些人可能已经用Python编写了稀疏代码,但这不是这些标准软件包的一部分。
我将投票结束。
答案 1 :(得分:-1)