numpy.linalg.norm函数工作原理及多参数计算结果解析
numpy.linalg.norm 工作机制及示例推导
函数核心工作原理
numpy.linalg.norm 是专门用于计算向量(或矩阵)范数的工具函数,核心逻辑是根据指定的**p值(范数阶数)**执行对应的数学计算:
- 对于一维向量,p-范数的通用计算公式为:
||x||_p = (|x₁|^p + |x₂|^p + ... + |xₙ|^p)^(1/p) - 特殊的0-范数:numpy中定义为向量中非零元素的个数(这是工程上常用的定义,并非严格数学意义上的范数)。
示例代码及结果推导
先看给出的示例代码:
>>> np.linalg.norm([1,2,3,4,5],0) 5.0 >>> np.linalg.norm([1,2,3,4,5],1) 15.0 >>> np.linalg.norm([1,2,3,4,5],2) 7.416198487095663 >>> np.linalg.norm([1,2,3,4,5],3) 6.082201995573399 >>> np.linalg.norm([1,2,3,4,5],4) 5.593654949523078
逐个拆解推导:
p=0的计算
numpy的0-范数统计向量中非零元素的数量。示例向量[1,2,3,4,5]的5个元素全是非零值,所以结果为5.0。
p=1的计算
1-范数(曼哈顿范数)是所有元素绝对值的总和:|1| + |2| + |3| + |4| + |5| = 1+2+3+4+5 = 15,对应输出15.0。
p=2的计算
2-范数(欧几里得范数)是元素平方和的平方根:
- 计算平方和:
1² + 2² + 3² + 4² + 5² = 1+4+9+16+25 = 55 - 开平方:
√55 ≈ 7.416198487095663,和输出一致。
p=3的计算
3-范数是元素绝对值的3次方和的1/3次方:
- 计算3次方和:
1³ + 2³ + 3³ + 4³ + 5³ = 1+8+27+64+125 = 225 - 开3次方:
225^(1/3) ≈ 6.082201995573399,匹配输出结果。
p=4的计算
4-范数是元素绝对值的4次方和的1/4次方:
- 计算4次方和:
1⁴ + 2⁴ + 3⁴ + 4⁴ + 5⁴ = 1+16+81+256+625 = 979 - 开4次方:
979^(1/4) ≈ 5.593654949523078,和输出结果一致。
内容的提问来源于stack exchange,提问作者Digerkam
相关产品推荐
相关产品推荐

