我在 scipy 中使用 linalg 来获取 155X156 矩阵的特征值和特征向量。然而,与矩阵相比,特征值的顺序似乎是随机的。我希望第一个特征值对应于矩阵中的第一个数字。请看下面我的日常。我首先读取一个包含所有这样的浮点数的文件(1_1o.dat)
2533297.650278 -2373859.531153
37695.845843 425449.129032
Run Code Online (Sandbox Code Playgroud)
然后我将它们作为数组读取
[2533297.650278, -2373859.531153, 37695.845843, 425449.129032...]
Run Code Online (Sandbox Code Playgroud)
然后重塑为 156X156 矩阵。我希望按照读取矩阵的顺序打印所有特征值和相应的特征向量。我知道最终我的特征值(156 个数字)应该从小到大列出,而不是像当前例程那样随机列出。当然,相应的特征向量也有相同的顺序。有人可以帮我解决这个问题吗?
谢谢。
from scipy import linalg
from scipy.linalg import *
file2 = open('1_1f.dat', 'w')
with open('1_1o.dat', 'rU') as file:
File = file.readlines()
nums2 = np.array(File)
nums2 = [float(i.rstrip('\n')) for i in nums2[0].split()]
nums2 = np.reshape(nums2, (156, 156))
print eig(nums2)
print >> file2, eig(nums2)
file2.close()
Run Code Online (Sandbox Code Playgroud) python ×1