numpy python中的矢量化特征值计算

numpy python中的矢量化特征值计算,python,numpy,vectorization,Python,Numpy,Vectorization,我试图把A的每一行排列成一个矩阵,然后计算特征值。 我需要帮助将此操作矢量化 A= np.array([[5, 5, 7, 0, 1, 6], [4, 0, 9, 3, 4, 0], [3, 1, 2, 0, 1, 1], [7, 6, 4, 4, 1, 8], [3, 1, 9, 8, 0, 1], [8, 6, 1, 4, 3, 6], [6, 9, 5, 9, 6

我试图把A的每一行排列成一个矩阵,然后计算特征值。 我需要帮助将此操作矢量化

A= np.array([[5, 5, 7, 0, 1, 6], 
          [4, 0, 9, 3, 4, 0],
          [3, 1, 2, 0, 1, 1],
          [7, 6, 4, 4, 1, 8], 
          [3, 1, 9, 8, 0, 1], 
          [8, 6, 1, 4, 3, 6], 
          [6, 9, 5, 9, 6, 1], 
          [5, 9, 6, 8, 3, 3]])

S1 = A[:,0]
S2 = A[:,1]
S3 = A[:,2]
S4 = A[:,3]
S5 = A[:,4]
S6 = A[:,5]

SS=[(S1,S4,S5),(S4,S2,S6),(S5,S6,S3)]
SS=np.array(SS)
reqval=np.zeros([len(A),1])

for i in range(len(A)):
    eva = np.linalg.eigvals(SS[:,:,i])
    reqval[i] = max(eva)

使用
transpose/rollaxis/moveaxis
排列轴,这样我们就可以将前两个轴作为后两个轴,这样我们就可以通过单个调用使用
np.linalg.eigvals
,如下所示-

reqval = np.linalg.eigvals(SS.transpose(2,0,1)).max(1)

要使用
rollaxis
moveaxis
,请分别使用
np.rollaxis(SS,2,0)
np.moveaxis(SS,2,0)
替代
SS.transpose(2,0,1)
,发布的解决方案对您有效吗?