title: Vectorize eigenvalue calculation in Numpy
body: <p>I would like a numpy-sh way of vectorizing the calculation of eigenvalues, such that I can feed it a matrix of matrices and it would return a matrix of the respective eigenvalues.</p>
  
  <p>For example, in the code below, B is the block 6x6 matrix composed of 4 copies of the 3x3 matrix A.
  C is what I would like to see as output, i.e. an array of dimension (2,2,3) (because A has 3 eigenvalues). </p>
  
  <p>This is of course a very simplified example, in the general case the matrices A can have any size (although they are still square), and the matrix B is not necessarily formed of <em>copies</em> of A, but different A1, A2, etc (all of same size but containing different elements).</p>
  
  <pre><code>import numpy as np
  A = np.array([[0, 1, 0],
                [0, 2, 0],
                [0, 0, 3]])
  B = np.bmat([[A, A], [A,A]])
  C = np.array([[np.linalg.eigvals(B[0:3,0:3]),np.linalg.eigvals(B[0:3,3:6])],
                [np.linalg.eigvals(B[3:6,0:3]),np.linalg.eigvals(B[3:6,3:6])]])
  </code></pre>