python求矩陣特徵值 矩陣理論及其基本運算

2021-10-18 13:48:51 字數 2505 閱讀 8347

作為數學的乙個重要分支,矩陣理論具有極為豐富的內容。作為一種基本的工具、矩陣理論在數學學科以及其它領域,如數值分析、最優化理論、概率統計、運籌學、圖論、資訊科學與技術、管理科學與工程等學科都有十分重要的應用。因此對於資料分析工作者來說,學習矩陣理論及其重要。

一、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.ei**als(a) #單純的求解矩陣的特徵值print("eigenvalues: ", eigenvalues) eigenvalues, eigenvectors = np.linalg.eig(a)print("eigenvalues: ", eigenvalues)   #特徵值print("eigenvectors: ", eigenvectors) #特徵向量
三、總結

矩陣在實際資料探勘中具有重要的應用意義,在資料探勘中,就會直接用特徵值來描述對應特徵向量方向上包含的資訊量,而某一特徵值除以所有特徵值的和的值就為:該特徵向量的方差貢獻率(方差貢獻率代表了該維度下蘊含的資訊量的比例)。

通常經過特徵向量變換下的資料被稱為變數的主成分,當前m個主成分累計的方差貢獻率達到乙個較高的百分數(如85%以上)的話,就保留著這m個主成分的資料。實現了對資料進行降維的目的。整個主成分分析的演算法(pca)原理就是應用了矩陣特徵值、特徵向量的理論。

Matlab GPU矩陣求特徵值計算

gpu求特徵值的使用方法 clear all clcm rand 2000,2000 生成乙個隨機矩陣 tic a1,b1 eig m 求該隨機矩陣的特徵值和特徵向量 t1 toc ticm single m 將資料轉換為單精度型 m gpuarray m 將資料從cpu中搬到gpu a2,b2 e...

Math 矩陣特徵值

特徵值問題 ax lamda x a lamda i x 0 b a lamda i 特徵值與特徵向量 將矩陣a都看做線性變換 這一點在程雲鵬的 矩陣論 中也是這麼做的 矩陣a左乘乙個向量x,就是對這個向量x做線性變換。對於向量x來說,總是存在那麼些線性變換的方法,能夠將x的方向不變化 也就是不改變...

矩陣特徵值 特徵向量 奇異值

1.特徵值與奇異值的主要區別兩者的主要區別在於 奇異值分解主要用於資料矩陣,而特徵植分解主要用於方型的相關矩陣。自相關矩陣正定時,特徵值分解是奇異值分解的特例,且實現時相對簡單些。2.定義 一矩陣a作用與一向量a,結果只相當與該向量乘以一常數 即a a a,則a為該矩陣a的特徵向量,為該矩陣a的特徵...