首页 > 解决方案 > 对numpy返回的特征向量感到困惑

问题描述

我一直在玩 numpy 的 linalg 模块,并希望获得以下矩阵的特征向量:

import numpy as np
matrix = np.array([[4,0,-1],[0,3,0],[1,0,2]])
w,v = np.linalg.eig(matrix)
print(v)
array([[0.70710678, 0.70710678, 0.        ],
       [0.        , 0.        , 1.        ],
       [0.70710678, 0.70710678, 0.        ]])

手动计算特征向量只给了我两个向量,它们是 [1,0,1] 和 [0,1,0]。我知道 numpy 对向量进行归一化很好,但问题是当我尝试检查第一列和第二列是否相等时:

v[:,0] == v[:,1]
array([False,  True, False])

当我已经知道我只会得到两个时,这给我的印象是这是两个不同的向量(所以我现在总共有 3 个特征向量)。

有人可以解释一下这里发生了什么。

标签: python-3.xnumpy

解决方案


推荐阅读