title: numpy np.array versus np.matrix (performance)
body: <p>often when working with numpy I find the distinction annoying - when I pull out a vector or a row from a matrix and then perform operations with <code>np.array</code>s there are usually problems. </p>
  
  <p>to reduce headaches, I've taken to sometimes just using <code>np.matrix</code> (converting all np.arrays to <code>np.matrix</code>) just for simplicity. however, I suspect there are some performance implications. could anyone comment as to what those might be and the reasons why?</p>
  
  <p>it seems like if they are both just arrays underneath the hood that element access is simply an offset calculation to get the value, so I'm not sure without reading through the entire source what the difference might be.</p>
  
  <p>more specifically, what performance implications does this have:</p>
  
  <pre><code>v = np.matrix([1, 2, 3, 4])
  # versus the below
  w = np.array([1, 2, 3, 4])
  </code></pre>
  
  <p>thanks</p>