numpy conveniently allows to deal with arrays but numpy is inherently not a matrix format. Of course it is possible to do matrix operations with numpy and there are excellent libraries for that.
The first thing I'll write about is the dot (scalar) product between 2 vectors (1-d matrices). Convention dictates that the first matrix is is a row matrix and the second one is a column matrix so that a.b = c where c is a scalar (number).