我有大小为 2200 * 2200 的对称矩阵。我在 numpy 中使用以下命令对角化:
np.linalg.eigh(A)
它给出如下输出:
(array([ -1.93221186e-14,  -1.53743240e-14,  -3.58303176e-15, ...,
     4.95098104e+01,   5.06117042e+01,   5.07858517e+01]).
请给我建议一种方法,以便它可以打印所有 2200 特征值。感谢您提前回复
只需使用元组解包:
eigenvalues, eigenvectors = np.linalg.eigh(A)
然后你将有一个一维数组eigenvalues。len(eigenvalues) == 2200如果你愿意,你可以像往常一样迭代和打印它。  
for eigenvalue in eigenvalues:
  print eigenvalue
    如前所述,您可以使用元组解包将特征值存储在单独的数组中。然后你可以使用np.savetxt例程写出你的数组:
import sys
import numpy as np
eigvals, eigvecs = np.linalg.eigh(A)
np.savetxt(sys.stdout, eigvals, delimiter=" ", fmt="%15.8E")
这里的好处是,如果您决定将数组写入文件而不是屏幕,您可以使用文件处理程序(甚至文件名)而不是 sys.stdout。