# Numpy #6 矩陣運算 ## 乘積 需注意數學上的矩陣尺寸要正確才能做 ab相乘: np.dot(a,b) 或 a.dot(b) 或 a@b a@b用在多維陣列的話,超過二維的會放到二維後才操作 ab內積: np.inner(a,b) ab外積(張量積): np.outer(a,b) 多維外積可參考此圖  ## 其他運算 np.trace(a) 跡(trace),即方陣對角線元素之和 np.linalg.det(a) 方陣行列式 np.linalg.inv(a) 方陣反矩陣 np.transpose(a) 轉置 np.linalg.eig(a) 會有兩個回傳(需指定兩個變數) 分別為特徵值eigenvalue與特徵向量eigenvector np.linalg.rank(a) 秩(rank),即獨立的列數 np.linalg.solv(a,b) 解線性系統,即aX=b的X ## 特殊矩陣 np.identity(n) nXn的單位矩陣 np.eye(a,b) aXb的單位矩陣,不是方陣也可以 可指定k=n 指定欄位索引n開始1 以上兩個可以指定dtype=,預設float   np.tri(a,b) 產生aXb對角線以下都是1的矩陣 可指定k=n 指定哪個欄位索引開始  np.triu(a) 將a上三角化 np.tril(a) 將a下三角化(皆不包含對角線) 以上可指定k=n指定開始對角線的欄位索引 np.diag(a) np.diagonal(a) 皆為得到a對角線的元素(以一維陣列表示) 可指定offset=,預設0,若為n則是將此對角線平行往右n格,可負 diagnal可指定哪兩個軸來對角 ## 矩陣分解 np.linalg.cholesky(a) cholesky分解 分解成下三角矩陣L乘以L的共軛轉置 np.linalg.qr(a) QR分解,有兩個回傳,需指定兩個變數 分解成一個正交矩陣Q(每個行列內積都是0)乘以一個上三角矩陣R np.linalg.svd(a) SVD分解,有三個回傳,需指定三個變數 其他矩陣運算參考: https://numpy.org/doc/stable/reference/routines.linalg.html ###### tags: `資料分析` `numpy` `python`
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.