numpy 學習彙總11-Matrix矩陣建立 ( 基礎學習 tcy)
阿新 • • 發佈:2018-11-23
Matrix類 建立:2018/7/4 修改:2018/11/20 ==================================================================== 1.函式 np.matrix() np.asmatrix() np.mat(data [,dtype]) #將輸入解釋為矩陣。 np.bmat(obj [,ldict,gdict]) #從字串,巢狀序列或陣列構建矩陣物件。 diag(v [,k]) # 提取一個對角線或構建一個對角陣列。 diagflat(v [,k]) # 建立一個平面輸入為對角線的二維陣列。 tri(N [,M,k,dtype]) # 在給定對角線和其他地方的零點以下的陣列。 tril(m [,k]) # 陣列下三角形。 triu(m [,k]) # 陣列的上三角形。 vander(x [,N,增加]) # 生成範德蒙德矩陣。 numpy.identity(n,dtype =無)#返回主對角線方陣n x n(主對角1其他0) ===================================================================== np.mat(data,dtype = None )#將輸入解釋為矩陣。如果輸入是矩陣不復制 # 相當於matrix(data, copy=False) 引數:data:輸入資料。 dtype:輸出矩陣的資料型別。 返回:矩陣 numpy.bmat(obj,ldict = None,gdict = None )#從str巢狀序列或陣列構建矩陣物件。 引數: obj:str或array輸入資料。#如是str則可通過名稱引用當前範圍中的變數。 ldict:dict,可選 替換當前幀中的本地運算元的字典。#如obj不是str則忽略或gdict為None。 gdict:dict,可選 替換當前幀中的全域性運算元的字典。#如obj不是str則忽略。 返回:矩陣 ===================================================================== 2.例項 a=np.matrix([1,2])# matrix([[1, 2]]) type(a) # numpy.matrixlib.defmatrix.matrix a=np.array([1,2])#array([1, 2]) b=np.asmatrix(a)#matrix([[1, 2]]) id(b)!=id(a) #True m1=np.mat(a) # matrix([[1, 2]]) id(m1)!==id(a) #True m2=np.mat(b) #matrix([[1, 2]]) id(m2)==id(b) #True # 例子2 A = np.mat('1 1; 1 1')#matrix([[1, 1], [1, 1]]) B = np.mat('2 2; 2 2') C = np.mat('3 4; 5 6') D = np.mat('7 8; 9 0') # 以下所有表示式構造相同的塊矩陣: np.bmat('A,B; C,D') np.bmat([[A, B], [C, D]]) np.bmat(np.r_[ np.c_[A, B], np.c_[C, D] ]) # 輸出: matrix([[1, 1, 2, 2], [1, 1, 2, 2], [3, 4, 7, 8], [5, 6, 9, 0]]) # 例子3 a = np.eye(3, k=0) # 對角陣列k=0主對角線元素全1(其餘為0) a = np.identity(4) # 對角矩陣 np.diag(x) # 返回主對角線上的元素 np.diag(x, k=1) # 返回主對角線上的元素,上移1個單位 np.diag(x, k=-1) # 返回主對角線上的元素,下移1個單位 np.diagflat([[1, 2], [3, 4]]) # 4*4 2D設定主對角線上的元素,其他元素為0 np.diagflat([1, 2, 3], k=-1) # 4*4 2D設定主對角線上的元素,下移1個單位;其他元素為0 np.triu(a, k=1) # 取a的上三角矩陣,上移1個單位(其餘填0) np.tri(a, k=1) # 取a的下三角矩陣,上移1個單位 np.tri(3, 4) # 為1的下三角矩陣 np.tri(3, 4, k=1, dtype=int) # 為1的下三角矩陣,上移1個單位 np.vander([2, 3, 4, 5]) # 範德蒙德矩陣 np.vander([2, 3, 4, 5], N=3) # 範德蒙德矩陣 ====================================================================