我一直在跟随一些通过Python介绍线性代数的在线教程,并且遇到了讨论向量的大小和归一化的部分。线性代数的概念似乎表明:
Vector的大小= Vector所有元素的平方,加在一起,取平方根
向量的归一化=将向量除以幅度(或乘以1/幅度)。
很棒!我试图通过谷歌搜索如何通过Numpy的库函数找到向量的大小,并发现要找到大小,我使用Numpy . linag .norm()函数。一开始我觉得这很奇怪,但深入研究后,似乎默认情况下,函数找到了Frobenius范数,也就是像我上面做的那样找到了大小。
然而,我仍然不确定为什么"归一化"函数没有给我向量归一化的选项,而是选择默认情况下让自己成为一个"幅度"函数。有没有一个特殊的原因,为什么没有一个独立的大小函数,而是驻留在范数函数内?我想一定有一个很好的理由,但这对我来说似乎很困惑:)。
正如你已经在numpy. linalgn .norm()的文档中看到的那样,有一个名为ord的参数,它是规范的顺序,默认情况下该参数为None,如果你阅读文档,这意味着它将计算Frobenius规范,也称为欧几里得距离。
Frobenius范数只是向量范数更一般概念的特例,因此numpy的函数名范数在定义上是有意义的。