我一直在关注一些通过Python引入线性代数的在线教程,并且遇到了关于向量的大小和规范化的部分。线性代数概念似乎表明:
向量的大小 =对向量的所有元素进行平方,将它们加在一起,然后取平方根。
向量归一化 =将向量除以幅度(或乘以1 /幅度)。
大!我试图谷歌如何通过Numpy的库函数找到向量的大小,并发现找到我使用numpy.linalg.norm()函数的幅度。起初这对我来说似乎很奇怪,但在深入挖掘之后,似乎默认情况下该函数找到了Frobenius范数,它基本上就像我上面所做的那样找到了数量级。
然而,我仍然不确定为什么"标准化"函数没有选择给我矢量的归一化,而是选择让自己成为一个"幅度"默认情况下的功能是否有一个特定的原因,为什么没有一个独立的幅度函数,而是它驻留在规范函数内?我认为必须有一个很好的理由,但这似乎让我感到困惑:)。
答案 0 :(得分:2)
正如您在numpy.linalg.norm()的文档中已经看到的那样,有一个名为ord的参数,它是规范的顺序,默认情况下,此参数为None,如果您阅读文档,则表示它将是计算弗罗贝尼乌斯范数,也称欧几里德距离。
Frobenius规范只是vector norm更一般概念的特殊情况,因此numpy的函数名称规范在定义上是有意义的。