编辑:参见,在那里我学会了如何使用Numba并行化Python中的稀疏矩阵-向量乘法,并且能够与Matlab结合。
原题:
我观察到,在Matlab中,稀疏矩阵向量乘法比Python (使用枕稀疏矩阵)快4到5倍。下面是Matlab命令行的一些细节:
>> whos A
Name Size Bytes Class Attributes
A 47166x113954 610732376 double sparse
>> whos ATran
我想把我的稀疏scipy.lil_matrix矩阵除以向量,再得到稀疏矩阵。假设我有2个lil_matrix变量和2个numpy数组a, b, c, d,如下所示
In [1]: a
Out[1]:
<4x3 sparse matrix of type '<class 'numpy.float64'>'
with 11 stored elements in LInked List format>
In [2]: b
Out[2]:
<4x1 sparse matrix of type '<class
我有一个MxM矩阵S,它的条目在对角线上是零,在其他地方都是非零。我需要做一个更大的块矩阵。这些块的大小为NxN,并将有它们的MxM。
(i,j)th块将是S(i,j)I,其中I=eye(N)是NxN标识。这个矩阵肯定是稀疏的,S有M^2-M非零项,我的块矩阵将有N(M^2-M) out (NM)^2或关于1/N%非零条目,但是我将把它添加到另一个NMxNM矩阵中,而我并不期望它是稀疏的。
,既然我要把我的块矩阵添加到一个完整的矩阵中,那么用“稀疏”的方式来写我的代码会有什么速度上的提高吗?我不停地重复,但我的想法是:即使我的代码将S转化为稀疏块矩阵的效率不是很高,当我告诉它将一个完整的和稀疏