Python numpy.linalg.eig如何决定特征值的返回顺序?

Python numpy.linalg.eig如何决定特征值的返回顺序?,python,numpy,linear-algebra,eigenvalue,Python,Numpy,Linear Algebra,Eigenvalue,当我使用numpy.linalg.eig时 eValues, eVectors = numpy.linalg.eig(someMatrix) 返回的评估值几乎按降序排列 numpy.linalg.eig如何决定特征值返回的顺序?numpy对此不作保证- 从: 返回 ------- w:(…,M)数组 特征值,每个特征值根据其多重性重复。 特征值不一定是有序的。结果 数组将始终为复杂类型。当'a'是真的 结果特征值将是实部(0虚部)或 成对出现 对LAPACK的NUMPY委托进行此计算,因此如

当我使用
numpy.linalg.eig时

eValues, eVectors = numpy.linalg.eig(someMatrix)
返回的评估值几乎按降序排列


numpy.linalg.eig如何决定特征值返回的顺序?

numpy对此不作保证-

从:

返回
-------
w:(…,M)数组
特征值,每个特征值根据其多重性重复。
特征值不一定是有序的。结果
数组将始终为复杂类型。当'a'是真的
结果特征值将是实部(0虚部)或
成对出现

对LAPACK的NUMPY委托进行此计算,因此如果有任何一致的排序,则应考虑实现细节而不依赖于它。p> 好吧,我不会依赖它的。然而,我很好奇为什么它们看起来几乎是有序的。如果真的没有进行任何排序,那么我会期望更随机的排序。我猜lapack会通过行减少来实现这一点,所以这可能是该算法的副作用?如果您能阅读fortran,请仔细阅读源代码:)