无主之地2配置高吗|看真人裸体BBBBB|秋草莓丝瓜黄瓜榴莲色多多|真人強奷112分钟|精品一卡2卡3卡四卡新区|日本成人深夜苍井空|八十年代动画片

網易首頁 > 網易號 > 正文 申請入駐

NumPy 函數手冊:線性代數

0
分享至

在線性代數、科學計算以及機器學習中,經常需要進行矩陣乘法、求解線性方程組、矩陣分解以及向量與矩陣范數計算等操作。NumPy 提供了一組線性代數函數,主要集中在 numpy.linalg 模塊中,用于完成這些運算。

這些函數采用高度向量化實現,并調用底層高性能數學庫(如 BLAS 與 LAPACK),能夠高效處理向量與矩陣計算任務。

按照功能劃分,NumPy 中常用的線性代數函數通常可以分為以下幾類:

(1)矩陣與向量乘法及冪運算

(2)矩陣分解

(3)線性方程組求解

(4)矩陣特征值與特征向量

(5)矩陣范數與條件數

(6)矩陣逆與偽逆

(7)矩陣行列式與秩

一、矩陣與向量乘法及冪運算

matmul()

用于執行矩陣乘法運算(Matrix Multiplication)。與 Python 的 @ 運算符等價。

numpy.matmul(a, b)

參數說明:

? a:輸入數組或矩陣

? b:輸入數組或矩陣

函數行為說明:

當輸入為高維數組時,matmul() 會對最后兩個維度執行矩陣乘法,其余維度作為批處理維度。

示例:

#  [43 50]]

等價寫法:

A @ B

dot()

計算向量點積或矩陣乘法(Dot Product)。

numpy.dot(a, b)

函數行為說明:

? 對一維數組執行向量點積

? 對二維數組執行矩陣乘法

? 對更高維數組按照最后一維與倒數第二維進行乘法運算

參數說明:

? a:輸入數組或矩陣

? b:輸入數組或矩陣

示例 1:向量點積

# 32

解釋:

1×4 + 2×5 + 3×6 = 32

示例 2:矩陣乘法

#  [43 50]]

在二維矩陣場景下,dot() 與 matmul() 的結果通常一致;但在更高維數組上,兩者的廣播與乘法語義并不完全相同,實際使用中通常更推薦使用 matmul() 或 @ 表達矩陣乘法。

multi_dot()

計算多個矩陣的連乘,并自動選擇較優的乘法順序。

numpy.linalg.multi_dot(arrays)

參數說明:

? arrays:由多個數組組成的序列

示例:

#  [143]]

該運算等價于:

(A @ B) @ C

multi_dot() 會自動選擇更高效的矩陣乘法順序,特別適用于多個矩陣連乘的場景。

matrix_power()

計算方陣的整數次冪(Matrix Power)。

numpy.linalg.matrix_power(a, n)

參數說明:

? a:輸入方陣

? n:整數冪,可以為正整數、負整數或 0

返回:

a 的 n 次冪,結果形狀與原矩陣相同。

函數行為說明:

? 當 n > 0 時,計算 a 的正整數次冪

? 當 n = 0 時,返回與 a 同形狀的單位矩陣

? 當 n < 0 時,先計算 a 的逆矩陣,再求其 |n| 次冪

? 若 a 不是方陣,或 n < 0 且矩陣不可逆,則會報錯

示例 1:

#  [15 22]]

示例 2:

#  [0 1]]

示例 3:

# 等價于 np.linalg.inv(A)

matrix_power() 適用于狀態轉移矩陣、遞推關系、圖路徑計數等問題。它計算的是矩陣乘法意義下的冪,不是元素逐個求冪;若需要逐元素冪運算,應使用 ** 或 np.power()。

二、矩陣分解

svd()

奇異值分解(Singular Value Decomposition)。

完整形式:

numpy.linalg.svd(a, full_matrices=True, compute_uv=True)

常用形式:

numpy.linalg.svd(a)

參數說明:

? a:輸入矩陣

返回:

U, S, Vt

其中:

? U:左奇異向量矩陣

? S:奇異值數組

? Vt:右奇異向量矩陣的轉置

示例:

U, S, Vt = np.linalg.svd(A)

奇異值分解廣泛應用于:

? 主成分分析(PCA)

? 降維

? 矩陣近似

svdvals()

計算矩陣的奇異值,但不返回奇異向量。

numpy.linalg.svdvals(a)

參數說明:

? a:輸入矩陣

示例:

np.linalg.svdvals(A)

若只需要奇異值而不需要奇異向量,可直接使用該函數。

qr()

QR 分解。

numpy.linalg.qr(a)

參數說明:

? a:輸入矩陣

返回:

Q, R

其中:

? Q:正交矩陣

? R:上三角矩陣

示例:

Q, R = np.linalg.qr(A)

QR 分解常用于最小二乘問題以及數值穩定的線性方程求解。

cholesky()

Cholesky 分解。

numpy.linalg.cholesky(a)

參數說明:

? a:輸入方陣,必須是對稱正定矩陣

返回:

L

滿足:

A = L @ L.T

示例:

L = np.linalg.cholesky(A)

Cholesky 分解常用于:

? 協方差矩陣分解

? 數值優化

? 高效求解線性方程組

三、線性方程組求解

solve()

用于求解滿秩方陣對應的線性方程組。若系數矩陣奇異或不是方陣,應考慮 lstsq() 等方法。

numpy.linalg.solve(a, b)

參數說明:

? a:系數矩陣

? b:常數向量

求解:

Ax = b

示例:

# [2. 3.]

結果即為:

y = 3

lstsq()

最小二乘解(Least Squares Solution)。

numpy.linalg.lstsq(a, b, rcond=None)

參數說明:

? a:系數矩陣

? b:目標向量

? rcond:截斷閾值

示例:

x, residuals, rank, s = np.linalg.lstsq(A, b, rcond=None)

最小二乘法常用于:

? 線性回歸

? 數據擬合

四、矩陣特征值與特征向量

eig()

計算矩陣特征值與特征向量。

numpy.linalg.eig(a)

參數說明:

? a:方陣

返回:

w, v

其中:

? w:特征值

? v:特征向量

示例:

# [2. 3.]

特征值分解常用于:

? PCA

? 動態系統分析

? 馬爾可夫鏈

eigh()

計算實對稱矩陣或 Hermitian 矩陣的特征值與特征向量。

numpy.linalg.eigh(a)

參數說明:

? a:實對稱矩陣或 Hermitian 矩陣

返回:

w, v

其中:

? w:特征值

? v:特征向量

eigh() 專門用于實對稱矩陣或 Hermitian 矩陣,通常比 eig() 更適合這類問題,數值上也更穩定。常用于:

? 協方差矩陣分析

? 主成分分析(PCA)

eigvals()

計算矩陣特征值,但不返回特征向量。

numpy.linalg.eigvals(a)

參數說明:

? a:輸入方陣

示例:

# [2. 3.]

eigvals() 返回一般方陣的特征值,不返回特征向量。結果通常不保證排序;對于實矩陣,特征值也可能為復數。

eigvalsh()

計算實對稱矩陣或 Hermitian 矩陣的特征值,但不返回特征向量。

numpy.linalg.eigvalsh(a, UPLO='L')

參數說明:

? a:實對稱矩陣或 Hermitian 矩陣

? UPLO:指定使用矩陣的哪一部分參與計算

- 'U':使用上三角部分

返回:

按升序排列的特征值數組。

示例:

# array([1., 3.])

eigvalsh() 與 eigh() 類似,適用于實對稱矩陣或復 Hermitian 矩陣。二者的區別在于:

? eigh():返回特征值和特征向量

? eigvalsh():只返回特征值

因此,當只關心特征值而不需要特征向量時,eigvalsh() 更直接,也更節省計算開銷。

五、矩陣范數與條件數

norm()

計算向量或矩陣范數(Norm)。

numpy.linalg.norm(x, ord=None, axis=None, keepdims=False)

參數說明:

? x:輸入向量或矩陣

? ord:范數類型。ord 的具體含義取決于輸入對象(向量或矩陣)

對于矩陣,ord=None 時通常對應默認矩陣范數;ord 的具體解釋應結合輸入維度理解

? axis:指定沿哪個軸計算范數

? keepdims:是否保留被約簡的維度

示例:

# 5.0

這里計算的是向量長度(歐幾里得范數): 。

cond()

計算矩陣條件數(Condition Number)。默認計算基于 2-范數的條件數。

numpy.linalg.cond(x, p=None)

參數說明:

? x:輸入矩陣

? p:范數類型,默認使用 2-范數條件數

示例:

np.linalg.cond(A)

條件數用于衡量矩陣的數值穩定性:條件數越大,數值誤差越容易放大。

六、矩陣逆與偽逆

inv()

計算矩陣的逆矩陣。

numpy.linalg.inv(a)

參數說明:

? a:方陣

示例:

np.linalg.inv(A)

輸入必須是方陣,且該方陣可逆;否則會引發線性代數錯誤。

在數值計算中,若目的是求解線性方程組,通常優先使用 solve(),而不是先求逆再相乘。

pinv()

計算矩陣的偽逆(Moore-Penrose Pseudoinverse)。

numpy.linalg.pinv(a)

參數說明:

? a:輸入矩陣

示例:

np.linalg.pinv(A)

偽逆常用于:

? 不可逆矩陣

? 線性回歸

? 最小二乘問題

七、矩陣行列式與秩

det()

計算矩陣行列式(Determinant)。

numpy.linalg.det(a)

參數說明:

? a:方陣

示例:

# -2.0

行列式為 0 表示矩陣不可逆。

matrix_rank()

計算矩陣秩(Matrix Rank)。

numpy.linalg.matrix_rank(a)

參數說明:

? a:輸入矩陣

示例:

# 1

矩陣秩表示矩陣中線性無關行(或列)的數量。

slogdet()

以更穩定的方式計算矩陣行列式的符號與對數絕對值。

numpy.linalg.slogdet(a)

參數說明:

? a:輸入方陣

返回:

? sign:行列式的符號

? logabsdet:行列式絕對值的自然對數,即 log(abs(det(a)))

示例:

print(logabsdet)  # 約 0.693147...

因為 det(A) = -2,所以其符號 sign = -1;又因為 abs(det(A)) = 2,故 logabsdet = log(2) ≈ 0.693147。

補充說明:

slogdet() 適合處理行列式絕對值很大或很小的矩陣。與直接計算 det() 相比,它在數值上更穩定,更不容易因為浮點數范圍限制而產生上溢或下溢。若需要恢復原行列式,可利用:

det = sign * np.exp(logabsdet)

當矩陣行列式為 0 時,返回結果中 sign 為 0,logabsdet 為 -inf。

對復數矩陣,sign 可能是模長為 1 的復數,而不只是 -1、0、1。

小結

NumPy 在 numpy.linalg 模塊中提供了一組用于線性代數計算的函數體系,包括矩陣與向量乘法及冪運算(matmul、dot、multi_dot、matrix_power)、矩陣分解(svd、qr、cholesky)、線性方程組求解(solve、lstsq)、特征值與特征向量計算(eig、eigh、eigvals、eigvalsh),以及范數、條件數、逆矩陣、偽逆、行列式、對數行列式和矩陣秩等分析工具。這些函數廣泛應用于科學計算、機器學習、信號處理與數值優化等領域。

點贊有美意,贊賞是鼓勵

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
財務造假!10家A股公司退市,超25萬股東踩雷

財務造假!10家A股公司退市,超25萬股東踩雷

21世紀經濟報道
2026-06-12 18:59:56
普京再次回應戰爭起源:不是俄開戰,是基輔先向頓巴斯開火

普京再次回應戰爭起源:不是俄開戰,是基輔先向頓巴斯開火

桂系007
2026-06-12 23:57:08
美加墨世界杯第二場比賽就現空座,票價爭議浮出水面

美加墨世界杯第二場比賽就現空座,票價爭議浮出水面

澎湃新聞
2026-06-12 17:40:29
剛剛,人類歷史上首位萬億美元富豪誕生!

剛剛,人類歷史上首位萬億美元富豪誕生!

每日經濟新聞
2026-06-12 22:32:06
英媒一語驚人:中美貿易戰中,美國唯獨算錯的是中國的底牌!

英媒一語驚人:中美貿易戰中,美國唯獨算錯的是中國的底牌!

流史歲月
2026-06-12 18:30:08
現在的年輕人不敢開房了

現在的年輕人不敢開房了

微微熱評
2026-06-13 00:53:53
看完世界杯第2場,球迷看清了3個不爭事實,韓國最擅長踢歐洲球隊

看完世界杯第2場,球迷看清了3個不爭事實,韓國最擅長踢歐洲球隊

侃球熊弟
2026-06-12 11:56:01
CCTV5直播!世界杯“重頭戲”,超21億歐元對決,姆巴佩PK哈蘭德

CCTV5直播!世界杯“重頭戲”,超21億歐元對決,姆巴佩PK哈蘭德

麥子的籃球故事
2026-06-12 17:40:17
阿里高層這次真的生氣了

阿里高層這次真的生氣了

一見財經
2026-06-12 11:11:21
國安部披露:在我國某海域發現有較大型活體海洋動物被掛上傳感器,竊取海洋敏感數據

國安部披露:在我國某海域發現有較大型活體海洋動物被掛上傳感器,竊取海洋敏感數據

每日經濟新聞
2026-06-12 13:16:05
中國斷供稀土5個多月,日本工廠無一停產,是真擺脫了還是在硬撐

中國斷供稀土5個多月,日本工廠無一停產,是真擺脫了還是在硬撐

次元君情感
2026-06-01 14:27:53
63歲阿湯哥被曝“越老越瘋”,同行都看不下去了

63歲阿湯哥被曝“越老越瘋”,同行都看不下去了

生活觀察員啊
2026-06-11 01:22:03
打臉CBA,懷特塞德高調加入其他聯賽沒有傷病,上海隊陷入爭議

打臉CBA,懷特塞德高調加入其他聯賽沒有傷病,上海隊陷入爭議

宗介說體育
2026-06-12 16:35:22
美軍開始空襲伊朗

美軍開始空襲伊朗

財聯社
2026-06-11 05:42:11
劉宇寧發文回應戀情:清醒坦蕩的態度,才是明星該有的模樣

劉宇寧發文回應戀情:清醒坦蕩的態度,才是明星該有的模樣

陳意小可愛
2026-06-13 00:50:31
“張雪機車”獲得WSBK艾米利亞-羅馬涅站桿位賽第三名

“張雪機車”獲得WSBK艾米利亞-羅馬涅站桿位賽第三名

極目新聞
2026-06-12 23:00:07
中央開始嚴查,多地機關事業單位大整頓啟動,這幾類人受影響最大

中央開始嚴查,多地機關事業單位大整頓啟動,這幾類人受影響最大

職場資深秘書
2026-06-12 14:47:02
老人入住精神病院7年后查出梅毒;哈爾濱精神專科白漁泡醫院稱系舊疾,家屬出示入院前梅毒陰性檢測報告反駁

老人入住精神病院7年后查出梅毒;哈爾濱精神專科白漁泡醫院稱系舊疾,家屬出示入院前梅毒陰性檢測報告反駁

大風新聞
2026-06-12 12:12:20
內塔尼亞胡:特朗普不打伊朗了,沒提前告訴我

內塔尼亞胡:特朗普不打伊朗了,沒提前告訴我

政知新媒體
2026-06-12 19:06:11
謝娜再次翻車,這一次,她踢到鐵板了

謝娜再次翻車,這一次,她踢到鐵板了

桌子的生活觀
2026-06-12 11:58:27
2026-06-13 02:35:00
MediaTea
MediaTea
專業的數字媒體、新媒體技術
1888文章數 80關注度
往期回顧 全部

科技要聞

剛剛,人類歷史上首位萬億美元富豪誕生!

頭條要聞

美加墨世界杯第二場比賽就現空座 英媒:尷尬

頭條要聞

美加墨世界杯第二場比賽就現空座 英媒:尷尬

體育要聞

歐洲恐韓?肉德維德?

娛樂要聞

一天4個瓜,肖戰熱巴最意外

財經要聞

萬億美元順差背后,透露這些信號

汽車要聞

標配激光雷達/雙動力可選 昊鉑S600限時售17.99萬起

態度原創

親子
游戲
本地
旅游
公開課

親子要聞

給孩子報個幼兒園還要工資流水?難道這就是傳說中的“因財施教”

索尼PS國區運營神了!玩梗《黑袍》:我會玩你的游戲

本地新聞

AK劉彰邂逅河北南大港濕地

旅游要聞

印度有錢人真多酷暑辦理旅游簽證!不是有錢任性,是熱到活不下去

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進入關懷版