固有値の計算をベクトル化する numpy-sh の方法が必要です。これにより、行列の行列を入力して、それぞれの固有値の行列を返すことができます。
たとえば、以下のコードでは、B は 3x3 マトリックス A の 4 つのコピーで構成されるブロック 6x6 マトリックスです。C は、出力として見たいもの、つまり次元 (2,2,3) の配列です (なぜなら A 3 つの固有値があります)。
もちろん、これは非常に単純化された例であり、一般的な場合、行列 A は任意のサイズを持つことができ (それでも正方形ですが)、行列 B は必ずしも A のコピーで構成されるとは限りませんが、異なる A1、A2 など (すべて同じサイズだが異なる要素を含む)。
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])]])