1. 程式人生 > 程式設計 >numpy.linalg.eig() 計算矩陣特徵向量方式

numpy.linalg.eig() 計算矩陣特徵向量方式

在PCA中有遇到,在這裡記錄一下

計算矩陣的特徵值個特徵向量,下面給出幾個示例程式碼:

在使用前需要單獨import一下

>>> from numpy import linalg as LA
>>> w,v = LA.eig(np.diag((1,2,3)))
>>> w; v
array([ 1.,2.,3.])
array([[ 1.,0.,0.],[ 0.,1.,1.]])
>>> w,v = LA.eig(np.array([[1,-1],[1,1]]))
>>> w; v
array([ 1. + 1.j,1. - 1.j])
array([[ 0.70710678+0.j,0.70710678+0.j    ],[ 0.00000000-0.70710678j,0.00000000+0.70710678j]])
>>> a = np.array([[1,1j],[-1j,1]])
>>> w,v = LA.eig(a)
>>> w; v
array([ 2.00000000e+00+0.j,5.98651912e-36+0.j]) # i.e.,{2,0}
array([[ 0.00000000+0.70710678j,[ 0.70710678+0.j,0.00000000+0.70710678j]])
>>> a = np.array([[1 + 1e-9,0],[0,1 - 1e-9]])
>>> # Theor. e-values are 1 +/- 1e-9
>>> w,v = LA.eig(a)
>>> w; v
array([ 1.,1.])
array([[ 1.,1.]])

官方文件連結:http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eig.html

以上這篇numpy.linalg.eig() 計算矩陣特徵向量方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。