1. 程式人生 > >numpy 學習彙總11-Matrix矩陣建立 ( 基礎學習 tcy)

numpy 學習彙總11-Matrix矩陣建立 ( 基礎學習 tcy)

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)  # 範德蒙德矩陣
====================================================================