機器學習之線性代數:矩陣

矩陣是向量的集合,把多個向量組織在一起就構成了一個矩陣。例如在三維空間內,有 A、B、C 三個向量。

將 A、B、C 三個向量按照行的方式組織在一起構成了矩陣 M:

將 A、B、C 三個向量按照列的方式組織在一起構成了矩陣 T:

矩陣 M 的向量稱爲行向量,矩陣 T 的向量稱爲列向量。下面給出矩陣的定義:

矩陣是由 m X n 個數 aij 排列成的 m 行 n 列的數表,稱爲 m 行 n 列矩陣,簡稱 m X n 矩陣。矩陣表示如下:

在上述定義中,可以把矩陣 A 看作是由 m 個:

向量構成的。

如果矩陣的行和列相同,即矩陣是由 n X n 個數 aij 排列成的 n 行 n 列的數表,稱爲 n 階矩陣。

矩陣的轉置運算

前面的矩陣 M 和矩陣 T 可以互相轉換,這種轉換稱爲矩陣的轉置運算。矩陣的轉置就是把矩陣的行列互換,行變成列,列變成行。例如對 M 矩陣行列互換後,就構成了矩陣 T。

下面給出矩陣的轉置概念:

把 m X n 矩陣 A 的行列依次互換得到 n X m 矩陣,稱爲矩陣 A 的轉置矩陣,記作 AT。

矩陣的轉置運算滿足下面的運算律:

轉置矩陣的轉置矩陣是原矩陣。

A 與 B 和的轉置矩陣等於 A 的轉置矩陣與 B 的轉置矩陣的和。

A 與 B 矩陣積的轉置矩陣等於 B 的轉置矩陣與 A 的轉置的積(順序不能顛倒)。

矩陣的加法運算

設有矩陣 A 和矩陣 B:

如何計算 A+B 和 A-B 呢?

兩個矩陣進行加法和減法運算有一個前提條件,就是兩個矩陣的行數和列數相同,在這種情況下,兩個矩陣相加和相減的結果是一個新的矩陣,新矩陣的行數和列數和原來矩陣的行列數相同,其元素分別是兩個矩陣對應元素的和值和差值。

矩陣的加法和減法運算可以看作矩陣內對應向量的加法或減法運算。例如在計算 A+B 的過程中,A 的列向量或行向量分別與 B 的列向量或行向量相加,結果是新矩陣的列向量或行向量。

純量與矩陣的乘法運算

純量與矩陣相乘,結果矩陣與原矩陣的行列數相同,其元素的值是原矩陣中每個對應元素與純量相乘的數值。

(-1)* B 的計算過程如下所示:

例 1:編寫 Python 程序,實現前面矩陣 A 和 B 的加法運算和減法運算。

在 Python 程序中,使用嵌套列表定義一個二維數組,這個二維數組就是一個矩陣。

#使用嵌套列表定義矩陣A和B
A = [[-1,3,2],[5,7,-2],[-3,0,1]]
B = [[8,2,-1],[6,4,0],[-2,3,5]]
#定義矩陣C,存儲A+B的結果
C = [[0,0,0],[0,0,0],[0,0,0]]
#定義矩陣D,存儲A-B的結果
D = [[0,0,0],[0,0,0],[0,0,0]]
# 遍歷A矩陣的行
for i in range(len(A)):
   # 遍歷A矩陣的列
   for j in range(len(A[0])):
       C[i][j] = A[i][j] + B[i][j]
       D[i][j] = A[i][j] - B[i][j]
print(C)
print(D)
在實際應用中,一般使用numpy對矩陣進行運算。
# 導入numpy模塊
import numpy as np
# 定義矩陣
A = np.array([[-1,3,2],[5,7,-2],[-3,0,1]])
B = np.array([[8,2,-1],[6,4,0],[-2,3,5]])
# 矩陣運算
print(A+B)
print(A-B)
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/4MT9z4CfacEgEkhzNrH1nw