python-np.linalg-线性代数

本文详细介绍了NumPy库中的线性代数函数,包括矩阵和向量乘法、矩阵逆、转置、行列式、特征值/向量计算、解线性方程组以及范数计算方法。通过实例展示了如何在Python中使用这些函数进行计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、线性代数计算的函数

np.linalg是NumPy库中用于线性代数运算的子模块。

1. 矩阵和向量的乘法:np.dot()
2. 矩阵的逆:np.linalg.inv(A)

矩阵必须是方阵且可逆,否则会抛出LinAlgError异常。

3. 矩阵的转置:np.transpose(A)
4. 矩阵的行列式:np.linalg.det(A)
5. 矩阵的特征值和特征向量:np.linalg.eig()

linalg模块中,eigvals()函数可以计算矩阵的特征值,而eig()函数可以返回一个包含特征值和对应的特征向量的元组

6. 解线性方程组:np.linalg.solve()
7,范数np.linalg.norm(x, ord=None, axis=None, keepdims=False)

参数解释:

  • x:要计算范数的向量或矩阵
  • ord:范数的类型,默认为None,表示
### np.sum 和 np.linalg.norm 的定义与区别 `np.sum` 是 Numpy 中的一个基本函数,用于计算数组中所有元素的总和。它适用于各种维度的数组,并允许指定轴方向进行累加操作[^2]。 相比之下,`np.linalg.norm` 则是专门用来计算向量或矩阵范数的函数。它可以接受不同的 `ord` 参数来表示不同类型的范数(如 L1 范数、L2 范数等),并支持更复杂的数学运算逻辑[^3]。 #### 主要区别总结如下: 1. **功能定位** - `np.sum` 只负责简单地对数组中的数值求和。 - `np.linalg.norm` 提供了基于线性代数理论的多种范数计算方式,具有更强的灵活性和特定领域适用性[^4]。 2. **输入参数** - 对于 `np.sum` 来说,其核心作用在于聚合数据,因此主要关注的是目标数组及其可选的轴参数。 - 而对于 `np.linalg.norm` ,除了基础的数据外还需要考虑额外选项比如 `ord`, `axis` 等以决定具体采用哪种形式的范数度量标准[^5]。 3. **应用场景** - 使用 `np.sum` 更适合统计分析或者当只需要知道某个集合里全部成员合计值的时候。 - 当涉及到距离测量、误差评估或者其他涉及矢量化表达式的场合,则应该优先选用 `np.linalg.norm` 进行相应处理[^1]。 以下是两个函数的具体对比实例代码演示: ```python import numpy as np arr = np.array([3, 4]) # 使用 np.sum 计算总和 total_sum = np.sum(arr) # 使用 np.linalg.norm 默认情况下会返回欧几里得长度 (即 L2 范数) l2_norm_default = np.linalg.norm(arr) print(f"Total Sum using np.sum(): {total_sum}") print(f"L2 Norm via default setting of np.linalg.norm(): {l2_norm_default}") ``` 以上程序片段展示了即使面对相同的一维数组 `[3, 4]` ,调用这两个方法得到的结果完全不同——前者给出7作为两数字之和;后者则依据勾股定理得出约等于5的实际几何意义下的模长[^1]^. ### 结论 综上所述,在实际编程过程中应当根据需求合理选取合适的工具完成任务。如果仅仅是为了获取一系列数值的整体规模大小,那么直接运用简洁明快的 `np.sum()` 就已经足够胜任这项工作了;然而一旦牵涉到更加精细严谨的数量关系描述时(例如衡量空间位置间差距),就务必依赖像 `np.linalg.norm()` 那样具备深厚理论支撑的专业级解决方案才行[^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值