网易首页 > 网易号 > 正文 申请入驻

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.

相关推荐
热点推荐
见过世面的人终会领悟:性格越善良的人,被人做局后越容易废在报复上;能让对方畏惧你的,从不是以牙还牙,而是这两种别人学不来的能力

见过世面的人终会领悟:性格越善良的人,被人做局后越容易废在报复上;能让对方畏惧你的,从不是以牙还牙,而是这两种别人学不来的能力

心理观察局
2026-07-22 07:01:07
字节跳动出新规:禁止‘哥姐总’称呼,只许直呼其名!

字节跳动出新规:禁止‘哥姐总’称呼,只许直呼其名!

侃故事的阿庆
2026-07-21 00:53:20
闹大了,周星驰问张艺兴:下次我还找你拍戏 , 零片酬行吗,张艺兴回应显情商,他在片场长时间暴晒,皮肤晒得黝黑,完全褪去了精致妆感

闹大了,周星驰问张艺兴:下次我还找你拍戏 , 零片酬行吗,张艺兴回应显情商,他在片场长时间暴晒,皮肤晒得黝黑,完全褪去了精致妆感

二胡的岁月如歌
2026-07-21 17:50:21
蔡司CEO:中国芯片被局限在7nm节点,但有希望制造出更先进的芯片

蔡司CEO:中国芯片被局限在7nm节点,但有希望制造出更先进的芯片

逍遥漠
2026-07-21 20:38:37
CBA各队净利润被曝光!广东男篮盈利稳居榜首,这三家亏损的不忍直视

CBA各队净利润被曝光!广东男篮盈利稳居榜首,这三家亏损的不忍直视

小七说篮球
2026-07-22 11:22:55
临床医学,真的变天了!普天同降!

临床医学,真的变天了!普天同降!

勋哥教你填志愿
2026-07-22 12:14:50
曝谢贤辞灵礼仅3人出席,王菲、孙辈都没现身,谢霆锋已准备复工

曝谢贤辞灵礼仅3人出席,王菲、孙辈都没现身,谢霆锋已准备复工

小疯子耶
2026-07-22 09:56:25
889万腰斩起拍,87轮出价后5.84万/㎡成交!5年前摇号时的“天选之子”,杭州一高端小区终于卖掉了第一套二手房

889万腰斩起拍,87轮出价后5.84万/㎡成交!5年前摇号时的“天选之子”,杭州一高端小区终于卖掉了第一套二手房

都市快报橙柿互动
2026-07-21 00:07:56
中国要提防巴基斯坦,看看他们的小孩,随口就:“秦腔穷”!

中国要提防巴基斯坦,看看他们的小孩,随口就:“秦腔穷”!

经纬戎韬
2026-07-20 21:33:05
里奇-保罗:各队无需再做任何事打动詹姆斯,所有信息都已传达

里奇-保罗:各队无需再做任何事打动詹姆斯,所有信息都已传达

懂球帝
2026-07-22 08:10:12
为了借兵,走遍半个地球

为了借兵,走遍半个地球

我是历史其实挺有趣
2026-07-21 08:52:24
喝的中药大半是假货!药材全链条造假,千年中医被自己人毁掉

喝的中药大半是假货!药材全链条造假,千年中医被自己人毁掉

咸鱼金脑袋
2026-07-19 10:55:20
年纪大了,行房要坚持“4不要”,尤其是最后1个,可能伤身!

年纪大了,行房要坚持“4不要”,尤其是最后1个,可能伤身!

医学原创故事会
2026-07-21 19:42:04
500红军不愿改编,杀5名劝导的干部,这支孤军的下场让史学界无言

500红军不愿改编,杀5名劝导的干部,这支孤军的下场让史学界无言

磊子讲史
2026-07-04 16:59:58
亚洲首个倒下的国家要出现?缺电停工银行烂账,金融黑幕遮不住了

亚洲首个倒下的国家要出现?缺电停工银行烂账,金融黑幕遮不住了

新姐看世界
2026-07-21 16:26:37
屌炸天!相亲相到植物人,媒婆的话震碎三观,这是什么奇葩操作

屌炸天!相亲相到植物人,媒婆的话震碎三观,这是什么奇葩操作

另子维爱读史
2026-07-20 21:39:09
世界杯结束不到2天,金球奖概率更新:姆巴佩32%升第一,梅西第8

世界杯结束不到2天,金球奖概率更新:姆巴佩32%升第一,梅西第8

侃球熊弟
2026-07-22 09:39:08
生活中的这些暗示你懂多少?网友:警察一句话,让我免受牢狱之灾

生活中的这些暗示你懂多少?网友:警察一句话,让我免受牢狱之灾

夜深爱杂谈
2026-07-18 21:01:07
26岁女生放弃芝加哥公司工作去黄石公园缝裤子:时薪19美元

26岁女生放弃芝加哥公司工作去黄石公园缝裤子:时薪19美元

固件更新中
2026-07-21 12:15:15
A股:缩量上涨,科技股领涨,释放什么信号?科技牛又回来了吗?

A股:缩量上涨,科技股领涨,释放什么信号?科技牛又回来了吗?

云鹏叙事
2026-07-22 11:47:14
2026-07-22 13:07:00
MediaTea
MediaTea
专业的数字媒体、新媒体技术
1975文章数 85关注度
往期回顾 全部

科技要闻

怕了?美财长扬言:严查中国AI

头条要闻

乌克兰高层爆发严重内斗 泽连斯基撤换"屠夫"总司令

头条要闻

乌克兰高层爆发严重内斗 泽连斯基撤换"屠夫"总司令

体育要闻

“不会进球”的前锋,在世界杯决赛进球了

娱乐要闻

谢贤离世风波再起!王菲探望细节曝光

财经要闻

被误伤的A股:韧性、预期与底气

汽车要闻

WAIC专访|易启未来余志勇:网易孵化按摩机器人 能识穴会“手法”

态度原创

家居
健康
亲子
教育
军事航空

家居要闻

2026建博会(广州) 公装联探展交流活动

我这么年轻,也会中风吗?

亲子要闻

科普|如何预防和管理妊娠期高血压

教育要闻

大名县第六中学2026年新高一录取公告

军事要闻

美伊再开打 战局出现新变化

无障碍浏览 进入关怀版