title: how to interpret shape of array in numpy
body: <pre><code>import numpy as np
  
  a1 = np.array([1, 2, 3])
  a1.shape # (3,)
  a2 = np.array([[1, 2, 3]])
  a2.shape # (1, 3)
  
  b = np.array([[1, 2, 3], [2,3,4], [ 1,2,2]])
  np.dot(a1,b) # array([ 8, 14, 17])
  np.dot(a1,b) # array([[ 8, 14, 17]])
  </code></pre>
  <p>I have been thinking a1 as 'row vector' shaped as 1 by 3.
  However shape is (3,).</p>
  <p>Instead of this, the shape of a2 is (1,3) and it looks like more row vector.</p>
  <p>Both (a1, a2) can be inner producted(np.dot()) and result in same figures. ( only except for shape )</p>
  <p>Is there any difference to interpret these two?</p>
  <p>Is it proper to interpret a1 as <code>row vector</code> ?</p>