Python numpy 计算第一个特征值和特征向量

标签 python numpy eigenvalue

我想知道是否有一个 Python 包(numpy 或其他)具有计算小矩阵(比如 2x2)的第一个特征值和特征向量的函数。我可以按如下方式在 numpy 中使用 linalg 包。

import numpy as np

def whatever():
    A = np.asmatrix(np.rand(2, 2))
    evals, evecs = np.linalg.eig(A)
    #Assume that the eigenvalues are ordered from large to small and that the
    #eigenvectors are ordered accordingly.
    return evals[0], evecs[:, 0]

但这需要很长时间。我怀疑这是因为 numpy 通过某种迭代过程计算特征向量。所以我想知道是否有更快的算法只返回第一个(最大的)特征值和特征向量,因为我只需要第一个。

对于 2x2 矩阵,我当然可以自己编写一个函数,以解析方式计算特征值和特征向量,但是浮点计算存在问题,例如,当我将一个非常大的数除以一个非常小的数时,我得到无穷大或 NaN。有人对这个有了解吗?请帮忙!提前致谢!

最佳答案

关于Python numpy 计算第一个特征值和特征向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839413/

相关文章:

python - 列表分配中的字典导致奇怪的输出

python - 在模板中打印所有 Django 表单错误的官方建议不工作......或不理解

python - 使用 pandas groupby 时数据丢失时 np.average 不起作用

python - 查找数组中最小值的索引,其中相同的索引在另一个数组中指向零

python scipy.sparse.linalg.eigs 为连续调用提供不同的结果

python - Google Cloud Machine Learning 如何处理大量 HDF5 文件?

python - 重新格式化 Python 文件以具有 4 个空格缩进

python - NumPy 数组交集的索引

python - 带有固定种子的 scipy.sparse.linalg.eigsh

python - 在 Python 中绘制相关圆