NumPy之矩陣向量線性代數(shù)等操作示例
NumPy矩陣和向量
矩陣
在NumPy中,矩陣可以看作是一個二維數(shù)組,其中每個元素都可以通過行列坐標(biāo)來定位。它表示為一個m×n的矩形網(wǎng)格,其中m表示矩陣的行數(shù),n表示矩陣的列數(shù)。在計算機(jī)科學(xué)中,矩陣通常用數(shù)字或符號表示,并且可以進(jìn)行加、減、乘等運算。
一個M X N的矩陣是一個由M行(row)N列(column)元素排列成的矩形陣列。矩陣?yán)锏脑乜梢允菙?shù)字、符號或數(shù)學(xué)式。
以下是一個由 6 個數(shù)字元素構(gòu)成的 2 行 3 列的矩陣:
[1 2 3] [4 5 6]
注意:2×3矩陣即2行3列,請把左、右兩邊的多個[與多個]看成一個整體[]
向量
在 NumPy 中,向量是一維數(shù)組對象,其所有元素都必須具有相同的數(shù)據(jù)類型。向量可以通過創(chuàng)建一個一維數(shù)組來實現(xiàn)。
向量是一種特殊的矩陣,其中只包含一行或一列元素。向量通常用數(shù)字或符號表示,其大小表示向量包含的元素數(shù)量。
創(chuàng)建一個包含五個元素的向量:
import numpy as np v = np.array([1, 2, 3, 4, 5])
創(chuàng)建向量
import numpy as np # 創(chuàng)建一維數(shù)組 v = np.array([1, 2, 3]) print(v) # 輸出:[1 2 3]
創(chuàng)建矩陣
import numpy as np
# 創(chuàng)建二維數(shù)組
m = np.array([[1, 2, 3], [4, 5, 6]])
print(m) # 輸出:[[1 2 3]
# [4 5 6]]
訪問元素
import numpy as np # 創(chuàng)建一維數(shù)組 v = np.array([1, 2, 3]) # 訪問元素 print(v[0]) # 輸出:1 print(v[1]) # 輸出:2 print(v[2]) # 輸出:3
轉(zhuǎn)置矩陣
NumPy中除了可以使用numpy.transpose 函數(shù)來對換數(shù)組的維度,還可以使用 T 屬性。
例如有個 m 行 n 列的矩陣,使用 t() 函數(shù)就能轉(zhuǎn)換為 n 行 m 列的矩陣。
import numpy as np
# 創(chuàng)建矩陣
A = np.array([[1, 2], [3, 4]])
# 轉(zhuǎn)置矩陣
AT = np.transpose(A)
print(AT) # 輸出:[[1 3]
# [2 4]]
print (A.T)
矩陣加減乘除
# 矩陣加法 np.add(A, B) # 矩陣減法 np.subtract(A, B) # 矩陣乘法 # 在進(jìn)行矩陣乘法時,前一個矩陣的列數(shù)必須等于后一個矩陣的行數(shù),才能進(jìn)行乘法運算 # (M行, N列)*(N行, L列) = (M行, L列) p.dot(A, B) # 矩陣除法 np.divide(A, B)
import numpy as np
# 創(chuàng)建矩陣A和B
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print("A + B:")
print(np.add(A, B))
[1, 2] [5, 6] [6, 8]
+ =
[3, 4] [7, 8] [10, 12]
print("A - B:")
print(np.subtract(A, B))
[1, 2] [5, 6] [-4, -4]
- =
[3, 4] [7, 8] [-4, -4]
print("A * B:")
print(np.dot(A, B))
[1, 2] [5, 6] [19, 22]
* =
[3, 4] [7, 8] [43, 50]
print("A / B:")
print(np.divide(A, B))
[1, 2] [5, 6] [0.2, 0.33333333]
/ =
[3, 4] [7, 8] [0.42857143, 0.5]
矩陣和矩陣(向量)相乘: (M行, N列)*(N行, L列) = (M行, L列)

矩陣向量乘法
m×n 的矩陣乘以 n×1 的向量,得到的是 m×1 的向量
[1, 2] [1] [19] * = [3, 4] [1] [43]
矩陣求逆
使用numpy.linalg.inv()函數(shù)進(jìn)行矩陣求逆操作
import numpy as np # 創(chuàng)建矩陣 matrix = np.array([[1, 2], [3, 4]]) # 求逆矩陣 result = np.linalg.inv(matrix) print(result)
矩陣的跡
使用numpy.trace()函數(shù)可以計算矩陣的跡
import numpy as np # 創(chuàng)建矩陣 matrix = np.array([[1, 2], [3, 4]]) # 計算矩陣的跡 result = np.trace(matrix) print(result)
向量點積
使用numpy.dot()函數(shù)進(jìn)行向量點積操作
import numpy as np # 創(chuàng)建兩個向量 vector1 = np.array([1, 2]) vector2 = np.array([3, 4]) # 向量點積 result = np.dot(vector1, vector2) print(result)
向量范數(shù)
使用numpy.linalg.norm()函數(shù)可以計算向量的范數(shù)
import numpy as np # 創(chuàng)建向量 vector = np.array([1, 2, 3]) # 計算向量的L2范數(shù) result = np.linalg.norm(vector) print(result)
NumPy線性代數(shù)
NumPy的線性代數(shù)模塊(numpy.linalg)提供了許多矩陣運算函數(shù),如矩陣乘法、求逆、行列式、特征值等,該庫包含了線性代數(shù)所需的所有功能。
常用的 NumPy 線性代數(shù)函數(shù):
| 函數(shù) | 說明 |
|---|---|
| np.dot(a, b): | 兩個數(shù)組的點積,即元素對應(yīng)相乘 |
| np.matmul(a, b) | 兩個數(shù)組的矩陣積 |
| np.linalg.inv(a) | 計算矩陣的逆 |
| np.linalg.det(a) | 計算矩陣的行列式 |
| np.linalg.eig(a) | 計算矩陣的特征值和特征向量 |
| np.linalg.solve(a, b) | 解線性方程組 ax=b |
計算矩陣乘積
import numpy as np a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6], [7, 8]]) print(np.dot(a, b)) # [[19 22] # [43 50]]
計算矩陣的逆
import numpy as np a = np.array([[1, 2], [3, 4]]) print(np.linalg.inv(a)) # [[-2. 1. ] # [ 1.5 -0.5]]
解線性方程組
import numpy as np a = np.array([[2, 3], [4, 5]]) b = np.array([5, 6]) x = np.linalg.solve(a, b) print(x) # [-4. 5.]
解得的線性方程組如下,其解為x1=−4,x2=5

以上就是NumPy之矩陣向量線性代數(shù)等操作示例的詳細(xì)內(nèi)容,更多關(guān)于NumPy 矩陣向量線性代數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python?Streamlit制作交互式可視化網(wǎng)頁應(yīng)用實例
這篇文章主要為大家介紹了Python?Streamlit制作交互式可視化網(wǎng)頁應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Python PaddleNLP實現(xiàn)自動生成虎年藏頭詩
這篇文章主要介紹了利用Python PaddleNLP實現(xiàn)自動生成虎年藏頭詩功能,文中的示例代碼講解詳細(xì),感興趣的同學(xué)可以跟隨小編一起試一試2022-01-01
python調(diào)用jenkinsAPI構(gòu)建jenkins,并傳遞參數(shù)的示例
這篇文章主要介紹了python調(diào)用jenkinsAPI構(gòu)建jenkins,并傳遞參數(shù)的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-12-12

