python矩陣的基本運算及各種操作
一、Python 矩陣基本運算
引入 numpy 庫
import numpy as np
1. python矩陣操作
1)使用 mat 函數(shù)創(chuàng)建一個 2X3矩陣
a = np.mat([[1, 2, 3], [4, 5, 6]])

2)使用 shape 可以獲取矩陣的大小
a.shape

3)進行行列轉換
a.T

4)使用二維數(shù)組代替矩陣來進行矩陣運算
b = np.array([[1, 2, 3], [4, 5, 6]])

5) 加減法
a + b a - b

二、python矩陣乘法
1)使用二維數(shù)組創(chuàng)建兩個矩陣A和B
A = np.array([[1, 2, 3], [4, 5, 6]]) B = A.T
2)一個矩陣的數(shù)乘,其實就是矩陣的每一個元素乘以該數(shù)
2 * A

3)dot 函數(shù)用于矩陣乘法,對于二維數(shù)組,它計算的是矩陣乘積,對于一維數(shù)組,它計算的是內積
np.dot(A, B)

np.dot( B, A)

4)再創(chuàng)建一個二維數(shù)組
C = np.array([[1, 2], [1, 3]])
5)驗證矩陣乘法的結合性:( A B ) C = A ( B C ) (AB)C = A(BC)(AB)C=A(BC)
np.dot(np.dot(A, B), C)

np.dot(A, np.dot(B, C))

6)使用 eye 創(chuàng)建一個單位矩陣

三、python矩陣轉置
1)A的轉置
A.T

四、python求方陣的跡
1)A的跡

五、python求逆矩陣/伴隨矩陣
逆矩陣的定義:
設A是數(shù)域上的一個n階方陣,若在相同數(shù)域上存在另一個n階矩陣B,使得: AB=BA=E。 則我們稱B是A的逆矩陣,而A則被稱為可逆矩陣。當矩陣A的行列式|A|不等于0時才存在可逆矩陣。
1)創(chuàng)建一個方陣
A = np.array([[1, -2, 1], [0, 2, -1], [1, 1, -2]])
2)使用 linalg.det求得方陣的行列式
A_abs = np.linalg.det(A)

3) 使用 linalg.inv 求得方陣A的逆矩陣
B = np.linalg.inv(A)

4)利用公式求伴隨矩陣:
A_bansui = B * A_abs

六、python方陣的行列式計算方法
1)創(chuàng)建兩個方陣
E = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) F = np.array([[1, 2], [1, 3]])
2)使用 linalg.det 方法求得方陣E和方陣F的行列式
np.linalg.det(E)

np.linalg.det(F)

七、python解多元一次方程
x+2y+z=72
x−y+3z=73
x+y+2z=18
1) 將未知數(shù)的系數(shù)寫下來,排列成一個矩陣a
a = [[1, 2, 1], [2, -1, 3], [3, 1, 2]] a = np.array(a)
2)常數(shù)項構成一個一維數(shù)組(向量)
b = [7, 7, 18] b = np.array(b)
3)使用 linalg.solve 方法解方程,參數(shù)a指的是系數(shù)矩陣,參數(shù)b指的是常數(shù)項矩陣
x = np.linalg.solve(a, b)

4)使用點乘的方法可以驗證一下,系數(shù)乘以未知數(shù)可以得到常數(shù)項
np.dot(a, x)

附:矩陣的高級操作
M = Matrix([[1,3,4],[5,0,3],[3,5,7]])
print(M)
print("計算矩陣的行列式")
print(M.det())
print("化簡矩陣,返回兩個元素,第一個是矩陣,第二個是元組")
print(M.rref())
Matrix([[1, 3, 4], [5, 0, 3], [3, 5, 7]]) 計算矩陣的行列式 7 化簡矩陣 (Matrix([ [1, 0, 0], [0, 1, 0], [0, 0, 1]]), [0, 1, 2])
總結
到此這篇關于python矩陣的基本運算及各種操作的文章就介紹到這了,更多相關python矩陣運算內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Pygame坦克大戰(zhàn)游戲開發(fā)實戰(zhàn)詳解代碼
《坦克大戰(zhàn)》以二戰(zhàn)坦克為題材,既保留了射擊類游戲的操作性,也改進了射擊類游戲太過于復雜難玩的高門檻特點,集休閑與競技于一身。經(jīng)典再度襲來,流暢的畫面,瘋狂的戰(zhàn)斗,讓玩家再次進入瘋狂坦克的世界。玩家的目標是控制坦克躲避危險,消滅掉所有的敵人即可進入下一關2022-02-02
Python?Bleach保障網(wǎng)絡安全防止網(wǎng)站受到XSS(跨站腳本)攻擊
Bleach?不僅可以清理?HTML?文檔,還能夠對鏈接進行處理,檢查是否是合法格式,并可以使用白名單來控制哪些?HTML?標簽、屬性是安全的,因此非常適合用于清潔用戶輸入的數(shù)據(jù),確保網(wǎng)站安全2024-01-01

