0

如何计算numpy中的中间特征值?

这是正确的方法吗?

import numpy as np

(1/a.ndim)*np.trace(a)

a 是一个 numpy 矩阵。

4

1 回答 1

1

该代码不会计算“中间”一词的大多数定义的中间特征值(尽管它会偶然在 2x2 矩阵上工作)。

如果您想要特征值的平均值(这是您编写的代码最接近的值),那么您可以使用:

import numpy as np
def mean_eigenvalue(a):
    return np.trace(a)/len(a)

假设 a 是一个 NxN 矩阵。这是因为迹是特征值的总和,所以如果我们除以矩阵的大小(不是它的维数,它应该总是为 2)我们得到平均值。

如果您想要中值特征值(在矩阵具有奇数大小的情况下是特征值之一;否则它是两个值之间的一半),您可以使用:

import numpy as np
def median_eigenvalue(a):
    return np.median(np.linalg.eigvals(a))

请注意,对于 2x2 矩阵,这两个值是相同的。

于 2012-01-24T10:44:05.137 回答