如何在Python中选择和绘制特定数组?

0 投票
2 回答
551 浏览
提问于 2025-04-17 19:47

这是我正在使用的一段代码:

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中把它们画出来呢?

2 个回答

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个特征值和特征向量”。

1

下面的代码会选择前五个特征向量(假设你已经像例子中那样进行了排序):

eigenVectors[:,:5]

至于怎么最好地绘制一个十维向量,我就不太确定了。

撰写回答