python中有關矩陣的建立、求逆、轉置
注:NumPy是Numarray的後繼者,用來代替NumArray。SAGE是基於NumPy和其他幾個工具所整合成的數學軟體包,目標是取代Magma, Maple, Mathematica和Matlab 這類工具。
今天我想在網上找一些關於NumPy的介紹,並試一下用NumPy求逆矩陣的時候,竟然找不到任何中文的資料,有網友在論壇請教“怎麼用python進行矩陣求逆”,也無一人回答。因此我找到NumPy的官方文件,其中有一小節內容是介紹矩陣物件的,於是我就把這一節翻譯成中文,作出點微小的貢獻,時間較短,沒怎麼檢查拼寫錯誤,有問題請原諒。翻譯者:Keengle(http://www.kgblog.net)。
8.2 矩陣(Matrix)物件
Matrix型別繼承於ndarray型別,因此含有ndarray的所有資料屬性和方法。Matrix型別與ndarray型別有六個重要的不同點,當你當Matrix物件當arrays操作時,這些不同點會導致非預期的結果。
1)Matrix物件可以使用一個Matlab風格的字串來建立,也就是一個以空格分隔列,以分號分隔行的字串。
2)Matrix物件總是二維的。這包含有深遠的影響,比如m.ravel()的返回值是二維的,成員選擇的返回值也是二維的,因此序列的行為與array會有本質的不同。
3)Matrix型別的乘法覆蓋了array的乘法,使用的是矩陣的乘法運算。當你接收矩陣的返回值的時候,確保你已經理解這些函式的含義。特別地,事實上函式asanyarray(m)會返回一個matrix,如果m是一個matrix。
4)Matrix型別的冪運算也覆蓋了之前的冪運算,使用矩陣的冪。根據這個事實,再提醒一下,如果使用一個矩陣的冪作為引數呼叫asanarray(…)跟上面的相同。
5)矩陣預設的array_priority是10.0,因而ndarray和matrix物件混合的運算總是返回矩陣。
6)矩陣有幾個特有的屬性使得計算更加容易,這些屬性有:
(a) .T -- 返回自身的轉置
(b) .H -- 返回自身的共軛轉置
(c) .I -- 返回自身的逆矩陣
(d) .A -- 返回自身資料的2維陣列的一個檢視(沒有做任何的拷貝)
Matrix類是ndarray的一個Python子類,你也可以學習這個實現來構造自己的ndarray子類。Matrix物件也可以使用其它的Matrix物件,字串,或者其它的可以轉換為一個ndarray的引數來構造。另外,在NumPy裡,“mat”是“matrix”的一個別名。
例1: 使用字串構造矩陣
from numpy import *
a=mat(‘1 2 3; 4 5 3’)
print (a*a.T).I
[[ 0.29239766 -0.13450292]
[-0.13450292 0.08187135]]
例2: 使用巢狀序列構造矩陣
mat( [ [1,5,10],[1.0,3,4j] ])
matrix([[ 1.+0.j, 5.+0.j, 10.+0.j],
[ 1.+0.j, 3.+0.j, 0.+4.j]])
例3: 使用一個陣列構造矩陣
mat( random.rand(3,3) ).T
matrix([[ 0.81541602, 0.73987459, 0.03509142],
[ 0.14767449, 0.60539483, 0.05641679],
[ 0.43257759, 0.628695 , 0.47413553]])
Matrix( data, dtype=None, copy=True )
將以引數data傳進來的資料轉換為矩陣。如果dtype是None,那麼資料型別將由data的內容來決定。如果copy為True,則會拷貝data中的資料,否則會使用原來的資料緩衝。如果沒有找到資料的緩衝區,當然也會進行資料的拷貝。注意:矩陣matrix事實上是一個型別,因此當你構造例項的時候會呼叫matrix.new(matrix, data, dtype, copy)。
Mat
只是matrix的一個別名。
Asmatrix(data, dtype=None)
返回不經過複製的資料。等價於matrix(data, dtype, copy=False)。
Bmat(obj, ldict=None, gdict=None)
使用一個字串,巢狀的序列或者一個陣列(array)構造一個矩陣。這個命令允許你從其它的物件來建立起矩陣。其中當obj是一個字串的時候才會使用引數ldict和gdict,這兩個引數是區域性和模組的字典。如果你沒有提供它們,這些將由系統提供。
A=mat(‘2 2; 2 2’); B=mat(‘1 1; 1 1’);
print bmat(‘A B; B A’)
[[2 2 1 1]
[2 2 1 1]
[1 1 2 2]
[1 1 2 2]]
相關文章
- 矩陣求逆矩陣
- gauss_jordan法求矩陣的逆矩陣
- 伴隨矩陣和逆矩陣的關係證明矩陣
- 詳細講解矩陣求逆的快速演算法(轉)矩陣演算法
- 矩陣轉置矩陣
- 矩陣類及其常規運算(加、減、乘、轉置、求逆、行列式、代數餘子式、伴隨矩陣)矩陣
- 稀疏矩陣轉置矩陣
- 矩陣求導公式【轉】矩陣求導公式
- 奇異矩陣,非奇異矩陣,偽逆矩陣矩陣
- 【矩陣求導】關於點乘 (哈達瑪積)的矩陣求導矩陣求導點乘
- 資料結構:陣列,稀疏矩陣,矩陣的壓縮。應用:矩陣的轉置,矩陣相乘資料結構陣列矩陣
- 機器學習中的矩陣向量求導(五) 矩陣對矩陣的求導機器學習矩陣求導
- 使用世界變換的逆轉置矩陣對法線進行變換矩陣
- 求任意矩陣的伴隨矩陣矩陣
- 3D圖形:矩陣的行列式,矩陣的逆、正交矩陣、齊次矩陣3D矩陣
- Python程式碼閱讀(第41篇):矩陣轉置Python矩陣
- 矩陣置0矩陣
- 置換矩陣矩陣
- 矩陣求導矩陣求導
- numpy.linalg包函式用法集錦(求逆矩陣,求矩陣行列式的值,求特徵值和特徵向量,解方程組)函式矩陣特徵
- Hadoop 2.6 使用Map Reduce實現矩陣相乘1 矩陣轉置Hadoop矩陣
- 矩陣求導(二)矩陣求導
- 矩陣求導(一)矩陣求導
- 機器學習中的矩陣向量求導(四) 矩陣向量求導鏈式法則機器學習矩陣求導
- 矩陣求最短路徑矩陣
- 人工智慧之機器學習線代基礎——行列式、矩陣的 逆(inverse)、伴隨矩陣人工智慧機器學習矩陣
- 關聯矩陣矩陣
- LeetCode每日一題: 轉置矩陣(No.867)LeetCode每日一題矩陣
- MATLAB(5) 特殊矩陣的建立Matlab矩陣
- R的矩陣相乘/逆矩陣,小禮物和美食 - 2013.06.06小計矩陣
- python 計算矩陣的相關演算法Python矩陣演算法
- 旋轉矩陣矩陣
- 矩陣旋轉矩陣
- python將矩陣轉化為灰度圖Python矩陣
- 每日一題@49矩陣置零每日一題矩陣
- 為什麼轉置512x512矩陣,會比513x513矩陣慢很多?矩陣
- zip矩陣轉至矩陣
- V矩陣(轉載)矩陣