我用numpy.linalg.eig得到特征值和特征向量的列表:
A = someMatrixArray
from numpy.linalg import eig as eigenValuesAndVectors
solution = eigenValuesAndVectors(A)
eigenValues = solution[0]
eigenVectors = solution[1]
我想对我的特征值进行排序(例如从最低到最高),这样我就知道排序后关联的特征向量是什么。
我不想用python函数来实现这一点。有什么简单的方法或者我必须编码我的排序版本吗?
联合国大学的上述答复非常简洁明了。但是,这里有另一种方法,我们可以做得更一般,也可以用于列表。
这个tup[0]是特征值,排序函数将根据这个特征值对列表进行排序。
reverse=False表示增加顺序。
ubuntu的代码不适用于我的Python 3.6.5。它会导致运行时错误。因此,我将他/她的代码重构为这个代码,它在我的测试用例中可以正常工作:
使用numpy.argsort。它返回用于对数组排序的索引。
如果特征值是复数,the sort order is lexicographic(也就是说,复数首先根据其实部进行排序,并由其虚部断开连接)。
相关问题 更多 >
编程相关推荐