title: Numpy matrix multiplication fails ("shapes not aligned") when second element is a vector/array
body: <p>When I multiply a NxN numpy matrix by a N elements numpy array I get an error saying that the shapes are not aligned.</p>
  
  <pre><code>from numpy import matrix,ones,eye
  A = matrix(eye(3))
  b = ones(3)
  A*b
  
  ValueError: shapes (3,3) and (1,3) not aligned: 3 (dim 1) != 1 (dim 0)
  </code></pre>
  
  <p>Also trasposing the vector does not solve the issue. </p>
  
  <pre><code>A*b.T
  
  ValueError: shapes (3,3) and (1,3) not aligned: 3 (dim 1) != 1 (dim 0)
  </code></pre>
  
  <p>This make sense as numpy does not distinguish between column and row vectors so b.T is equal to b.</p>
  
  <p>How can I perform a simple matrix-vector multiplication?</p>