Hi,
I did a small benchmark of matrixvector multiply operation using
Numeric module. I'm a bit suprised to find matrix*colvector is much
faster than rowvector*matrix. I wonder whether other people have
observed this fact too, and why?
Below is the code I used, with output from my machine.
python bench.py
running 1000 iterations of matrix multiply of row 1000vector
10.5609340668 sec
running 1000 iterations of matrix operation of column 1000vector
4.11953210831 sec
code begin
import random
import time
from Numeric import *
n = 1000
k = 1000
r = array([ random.gauss(0, 1) for i in range(n)])
c = array([ [random.gauss(0, 1)] for i in range(n)])
M = zeros((n, n), Float)
for i in range(n):
for j in range(n):
M[i][j] = random.gauss(0, 1)
print 'running %d iterations of matrix multiply of row %dvector' % (k,
n)
t = time.time()
for i in xrange(k):
matrixmultiply(r, M)
print time.time()t, 'sec'
print 'running %d iterations of matrix operation of column %dvector' %
(k, n)
t = time.time()
for i in xrange(k):
matrixmultiply(M, c)
print time.time()t, 'sec'
code end
Zhang Le
