NumPy之矩陣向量線性代數(shù)等操作示例
NumPy矩陣和向量
矩陣
在NumPy中,矩陣可以看作是一個(gè)二維數(shù)組,其中每個(gè)元素都可以通過(guò)行列坐標(biāo)來(lái)定位。它表示為一個(gè)m×n的矩形網(wǎng)格,其中m表示矩陣的行數(shù),n表示矩陣的列數(shù)。在計(jì)算機(jī)科學(xué)中,矩陣通常用數(shù)字或符號(hào)表示,并且可以進(jìn)行加、減、乘等運(yùn)算。
一個(gè)M X N
的矩陣是一個(gè)由M
行(row)N
列(column)元素排列成的矩形陣列。矩陣?yán)锏脑乜梢允菙?shù)字、符號(hào)或數(shù)學(xué)式。
以下是一個(gè)由 6 個(gè)數(shù)字元素構(gòu)成的 2 行 3 列的矩陣:
[1 2 3] [4 5 6]
注意:2×3矩陣即2行3列,請(qǐng)把左、右兩邊的多個(gè)[與多個(gè)]看成一個(gè)整體[]
向量
在 NumPy 中,向量是一維數(shù)組對(duì)象,其所有元素都必須具有相同的數(shù)據(jù)類(lèi)型。向量可以通過(guò)創(chuàng)建一個(gè)一維數(shù)組來(lái)實(shí)現(xiàn)。
向量是一種特殊的矩陣,其中只包含一行或一列元素。向量通常用數(shù)字或符號(hào)表示,其大小表示向量包含的元素?cái)?shù)量。
創(chuàng)建一個(gè)包含五個(gè)元素的向量:
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]]
訪問(wèn)元素
import numpy as np # 創(chuàng)建一維數(shù)組 v = np.array([1, 2, 3]) # 訪問(wèn)元素 print(v[0]) # 輸出:1 print(v[1]) # 輸出:2 print(v[2]) # 輸出:3
轉(zhuǎn)置矩陣
NumPy中除了可以使用numpy.transpose 函數(shù)來(lái)對(duì)換數(shù)組的維度,還可以使用 T 屬性。
例如有個(gè) 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í),前一個(gè)矩陣的列數(shù)必須等于后一個(gè)矩陣的行數(shù),才能進(jìn)行乘法運(yù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ù)可以計(jì)算矩陣的跡
import numpy as np # 創(chuàng)建矩陣 matrix = np.array([[1, 2], [3, 4]]) # 計(jì)算矩陣的跡 result = np.trace(matrix) print(result)
向量點(diǎn)積
使用numpy.dot()函數(shù)進(jìn)行向量點(diǎn)積操作
import numpy as np # 創(chuàng)建兩個(gè)向量 vector1 = np.array([1, 2]) vector2 = np.array([3, 4]) # 向量點(diǎn)積 result = np.dot(vector1, vector2) print(result)
向量范數(shù)
使用numpy.linalg.norm()函數(shù)可以計(jì)算向量的范數(shù)
import numpy as np # 創(chuàng)建向量 vector = np.array([1, 2, 3]) # 計(jì)算向量的L2范數(shù) result = np.linalg.norm(vector) print(result)
NumPy線性代數(shù)
NumPy的線性代數(shù)模塊(numpy.linalg)提供了許多矩陣運(yùn)算函數(shù),如矩陣乘法、求逆、行列式、特征值等,該庫(kù)包含了線性代數(shù)所需的所有功能。
常用的 NumPy 線性代數(shù)函數(shù):
函數(shù) | 說(shuō)明 |
---|---|
np.dot(a, b): | 兩個(gè)數(shù)組的點(diǎn)積,即元素對(duì)應(yīng)相乘 |
np.matmul(a, b) | 兩個(gè)數(shù)組的矩陣積 |
np.linalg.inv(a) | 計(jì)算矩陣的逆 |
np.linalg.det(a) | 計(jì)算矩陣的行列式 |
np.linalg.eig(a) | 計(jì)算矩陣的特征值和特征向量 |
np.linalg.solve(a, b) | 解線性方程組 ax=b |
計(jì)算矩陣乘積
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]]
計(jì)算矩陣的逆
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ù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python?Streamlit制作交互式可視化網(wǎng)頁(yè)應(yīng)用實(shí)例
這篇文章主要為大家介紹了Python?Streamlit制作交互式可視化網(wǎng)頁(yè)應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Python 用戶(hù)輸入和while循環(huán)的操作
這篇文章主要介紹了Python 用戶(hù)輸入和while循環(huán)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Python多線程實(shí)現(xiàn)支付模擬請(qǐng)求過(guò)程解析
這篇文章主要介紹了python多線程實(shí)現(xiàn)支付模擬請(qǐng)求過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Python PaddleNLP實(shí)現(xiàn)自動(dòng)生成虎年藏頭詩(shī)
這篇文章主要介紹了利用Python PaddleNLP實(shí)現(xiàn)自動(dòng)生成虎年藏頭詩(shī)功能,文中的示例代碼講解詳細(xì),感興趣的同學(xué)可以跟隨小編一起試一試2022-01-01python調(diào)用jenkinsAPI構(gòu)建jenkins,并傳遞參數(shù)的示例
這篇文章主要介紹了python調(diào)用jenkinsAPI構(gòu)建jenkins,并傳遞參數(shù)的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-12-12