title: numpy.dot(a, b) gives wrong result on multiplication of matrices with similar dimenstions
body: <p>Let matrices a, b be [ 1, 2, 3, 4 ] i.e of (1 x 4) dimension. <br>
  On applying numpy.dot(a, b) the result is 30 instead of raising exception that both the matrices shapes are not aligned. <br>
  How can a (m x n) matrix be multiplied with (m x n) matrix? Does numpy automatically transposes one matrix to align their shapes and then multiply?</p>