NumPy之矩陣向量線性代數(shù)等操作示例
NumPy矩陣和向量
矩陣
在NumPy中,矩陣可以看作是一個二維數(shù)組,其中每個元素都可以通過行列坐標來定位。它表示為一個m×n的矩形網格,其中m表示矩陣的行數(shù),n表示矩陣的列數(shù)。在計算機科學中,矩陣通常用數(shù)字或符號表示,并且可以進行加、減、乘等運算。
一個M X N
的矩陣是一個由M
行(row)N
列(column)元素排列成的矩形陣列。矩陣里的元素可以是數(shù)字、符號或數(shù)學式。
以下是一個由 6 個數(shù)字元素構成的 2 行 3 列的矩陣:
[1 2 3] [4 5 6]
注意:2×3矩陣即2行3列,請把左、右兩邊的多個[與多個]看成一個整體[]
向量
在 NumPy 中,向量是一維數(shù)組對象,其所有元素都必須具有相同的數(shù)據類型。向量可以通過創(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
轉置矩陣
NumPy中除了可以使用numpy.transpose 函數(shù)來對換數(shù)組的維度,還可以使用 T 屬性。
例如有個 m 行 n 列的矩陣,使用 t() 函數(shù)就能轉換為 n 行 m 列的矩陣。
import numpy as np # 創(chuàng)建矩陣 A = np.array([[1, 2], [3, 4]]) # 轉置矩陣 AT = np.transpose(A) print(AT) # 輸出:[[1 3] # [2 4]] print (A.T)
矩陣加減乘除
# 矩陣加法 np.add(A, B) # 矩陣減法 np.subtract(A, B) # 矩陣乘法 # 在進行矩陣乘法時,前一個矩陣的列數(shù)必須等于后一個矩陣的行數(shù),才能進行乘法運算 # (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ù)進行矩陣求逆操作
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ù)進行向量點積操作
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ù)組的點積,即元素對應相乘 |
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ù)等操作示例的詳細內容,更多關于NumPy 矩陣向量線性代數(shù)的資料請關注腳本之家其它相關文章!
相關文章
Python?Streamlit制作交互式可視化網頁應用實例
這篇文章主要為大家介紹了Python?Streamlit制作交互式可視化網頁應用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12Python PaddleNLP實現(xiàn)自動生成虎年藏頭詩
這篇文章主要介紹了利用Python PaddleNLP實現(xiàn)自動生成虎年藏頭詩功能,文中的示例代碼講解詳細,感興趣的同學可以跟隨小編一起試一試2022-01-01python調用jenkinsAPI構建jenkins,并傳遞參數(shù)的示例
這篇文章主要介紹了python調用jenkinsAPI構建jenkins,并傳遞參數(shù)的示例,幫助大家更好的理解和學習python,感興趣的朋友可以了解下2020-12-12