我想使用scipy來計算矩陣的mathematical rank。最明顯的函數numpy.rank
計算數組的維數(即標量具有維0,向量1,矩陣2等)。我知道numpy.linalg.lstsq
模塊具有這種能力,但我想知道這樣的基本操作是否構建在矩陣類中。使用scipy計算矩陣排名
這裏有一個明顯的例子:
from numpy import matrix, rank
A = matrix([[1,3,7],[2,8,3],[7,8,1]])
print rank(A)
這給2
維度,在那裏我正在尋找的3
答案。
我使用Mathematica檢查了排名 - 確實是3.你在Python中調用的函數要麼不正確,要麼你使用錯了。 – duffymo 2010-03-18 23:37:00
用法是正確的 - 這首先讓我感到困惑。在這篇文章中,我解釋了排名的作用:它計算數組的維數。 「等級3」數組將是列表的列表。 – Hooked 2010-03-18 23:44:21
請注意,術語「排名」有些模棱兩可。對於張量,排名告訴你指數的數量(例如,標量是0級張量,矢量級1和矩陣級2)。對於線性代數,還有上面引用的定義。 從文檔字符串來看,Numpy顯然使用前者。 – 2010-03-29 13:17:15