title: numpy matrix vector multiplication
body: <p>When I multiply two <code>numpy</code> arrays of sizes (n x n)*(n x 1), I get a matrix of size (n x n). Following normal matrix multiplication rules, an (n x 1) vector is expected, but I simply cannot find any information about how this is done in Python's Numpy module.</p>
  <p>The thing is that I don't want to implement it manually to preserve the speed of the program.</p>
  <p>Example code is shown below:</p>
  <pre><code>a = np.array([[5, 1, 3], [1, 1, 1], [1, 2, 1]])
  b = np.array([1, 2, 3])
  
  print a*b
     &gt;&gt;
     [[5 2 9]
     [1 2 3]
     [1 4 3]]
  </code></pre>
  <p>What I want is:</p>
  <pre><code>print a*b
     &gt;&gt;
     [16 6 8]
  </code></pre>