La clase matrix se hereda de array y representa estríctamente arreglos bidimensionales mientras que array permite implementar arreglos de n dimensiones.

In [43]:
from numpy import matrix
from numpy import empty

In [14]:
a=matrix(((2,5),(4,6)))
b=matrix(((1,3),(6,4)))

In [22]:
a


Out[22]:
matrix([[2, 3],
        [4, 6]])

In [23]:
b


Out[23]:
matrix([[1, 3],
        [6, 4]])

La forma larga (aunque no tanto), clásica y NO pythonica


In [42]:
# shape es una tupla que indica número de filas y número de columnas
suma = empty((a.shape))
#el primer for que recorre las filas
for i in range(0, a.shape[0]):
    #el segundo for recorre las columnas
    for j in range(0, a.shape[1]):
        suma[i,j] = a[i,j] + b[i,j]
print (suma)


[[  3.   6.]
 [ 10.  10.]]

La forma pythonica y a lo numpy


In [26]:
suma = a+b
print(suma)


[[ 3  6]
 [10 10]]