python求矩陣特徵值_矩陣理論及其基本運算
阿新 • • 發佈:2021-02-03
技術標籤:python求矩陣特徵值
作為數學的一個重要分支,矩陣理論具有極為豐富的內容。作為一種基本的工具、矩陣理論在數學學科以及其它領域,如數值分析、最優化理論、概率統計、運籌學、圖論、資訊科學與技術、管理科學與工程等學科都有十分重要的應用。因此對於資料分析工作者來說,學習矩陣理論及其重要。
矩陣學習視訊教程:
一、python中的矩陣運算
python的numpy庫提供矩陣運算的功能,因此我們在需要矩陣運算的時候,需要匯入numpy的matrix包。
1、matrix包的匯入
import numpy as npfrom numpy import matrix as mat
2、建立常見的矩陣
>>>data1=mat(zeros((3,3))) #建立一個3*3的零矩陣,矩陣這裡zeros函式的引數是一個tuple型別(3,3)>>> data1matrix([[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]])>>>data2=mat(ones((2,4))) #建立一個2*4的1矩陣,預設是浮點型的資料,如果需要時int型別,可以使用dtype=int>>> data2matrix([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.]])>>>data3=mat(random.rand(2,2)) #這裡的random模組使用的是numpy中的random模組,random.rand(2,2)建立的是一個二維陣列,需要將其轉換成#matrix>>> data3matrix([[ 0.57341802, 0.51016034], [ 0.56438599, 0.70515605]])>>>data4=mat(random.randint(10,size=(3,3))) #生成一個3*3的0-10之間的隨機整數矩陣,如果需要指定下界則可以多加一個引數>>> data4matrix([[9, 5, 6], [3, 0, 4], [6, 0, 7]])>>>data5=mat(random.randint(2,8,size=(2,5))) #產生一個2-8之間的隨機整數矩陣>>> data5matrix([[5, 4, 6, 3, 7], [5, 3, 3, 4, 6]])>>>data6=mat(eye(2,2,dtype=int)) #產生一個2*2的對角矩陣>>> data6matrix([[1, 0], [0, 1]])a1=[1,2,3]a2=mat(diag(a1)) #生成一個對角線為1、2、3的對角矩陣>>> a2matrix([[1, 0, 0], [0, 2, 0], [0, 0, 3]])
3、矩陣的基本運算
(1)、矩陣的乘法
>>>a1=mat([1,2]); >>>a2=mat([[1],[2]]);>>>a3=a1*a2 #1*2的矩陣乘以2*1的矩陣,得到1*1的矩陣>>> a3matrix([[5]])
(2)矩陣求逆、轉置
#矩陣求逆>>a1=mat(eye(2,2)*0.5)>>> a1matrix([[ 0.5, 0. ], [ 0. , 0.5]])>>>a2=a1.I #求矩陣matrix([[0.5,0],[0,0.5]])的逆矩陣>>> a2matrix([[ 2., 0.], [ 0., 2.]])
#矩陣轉置>>> a1=mat([[1,1],[0,0]])>>> a1matrix([[1, 1], [0, 0]])>>> a2=a1.T>>> a2matrix([[1, 0], [1, 0]])
(3)求矩陣的特徵值和特徵向量
import numpy as np A = np.mat("1 2 3; 2 3 4; 5 4 6") #建立矩陣print("A\n", A) inverse = np.linalg.inv(A)print("inverse\n", inverse) eigenvalues = np.linalg.eigvals(A) #單純的求解矩陣的特徵值print("eigenvalues: ", eigenvalues) eigenvalues, eigenvectors = np.linalg.eig(A)print("eigenvalues: ", eigenvalues) #特徵值print("eigenvectors: ", eigenvectors) #特徵向量
三、總結
矩陣在實際資料探勘中具有重要的應用意義,在資料探勘中,就會直接用特徵值來描述對應特徵向量方向上包含的資訊量,而某一特徵值除以所有特徵值的和的值就為:該特徵向量的方差貢獻率(方差貢獻率代表了該維度下蘊含的資訊量的比例)。
通常經過特徵向量變換下的資料被稱為變數的主成分,當前m個主成分累計的方差貢獻率達到一個較高的百分數(如85%以上)的話,就保留著這m個主成分的資料。實現了對資料進行降維的目的。整個主成分分析的演算法(PCA)原理就是應用了矩陣特徵值、特徵向量的理論。