擅长:python、mysql、java
<p>我计时了,使用<code>sparse</code>更快:</p>
<pre><code>import numpy as np
from scipy import sparse
from timeit import timeit
A = np.random.rand(100,100)
B = np.zeros(A.shape, dtype=np.float)
B[3] = np.random.rand(100)
B[:,3] = np.random.rand(100)
sparse_B = sparse.csr_matrix(B)
n = 1000
t1 = timeit('np.dot(A, B)', 'from __main__ import np, A, B', number=n)
print 'dense way : {}'.format(t1)
t2 = timeit('A * sparse_B', 'from __main__ import A, sparse_B',number=n)
print 'sparse way : {}'.format(t2)
</code></pre>
<p>结果:</p>
^{pr2}$
<p>随着<code>B</code>行数的增加,使用稀疏矩阵乘法的时间优势也会增加。在</p>