以下是我使用的一些代码示例:
import numpy as np
import numpy.linalg as linalg
A = np.random.random((10,10))
eigenValues,eigenVectors = linalg.eig(A)
idx = eigenValues.argsort()
eigenValues = eigenValues[idx]
eigenVectors = eigenVectors[:,idx]
我想要做的是在一组超过五个特征向量中仅绘制五个最小的特征向量,然后绘制它们。那么如何选择前五个特征向量然后在matplotlib中绘制它们呢?
答案 0 :(得分:1)
以下将选择前五个特征向量(假设您已经按照示例进行了排序):
eigenVectors[:,:5]
至于如何最好地绘制十维向量,我不确定。
答案 1 :(得分:0)
对于未来的读者,这里有一个代码示例:
from pylab import *
N = 10
k = 5
L = 1
x = linspace(-L, L, N)
H = random((N,N))
ls, vs = eig(H)
#find and plot k lowest eigenvalues and eigenvectors
min_values_indices = argsort(ls)[0:k]
for i in min_values_indices:
plot(x, vs[:,i])
show()
顺便说一句 - 我会将这个问题的主题改为更具信息性的内容(例如" numpy - 找到最低的k特征值和特征向量")