【发布时间】:2017-09-11 02:16:38
【问题描述】:
np.linalg.norm(x, axis = 1, keepdims=True) 返回什么?
我有一个矩阵 np.array([[3.0,4.0],[1, 2]]) 。我正在尝试规范化矩阵的每一行。答案应该是np.array([[0.6,0.8],[0.4472136,0.89442719]]),但我无法理解代码是如何获得答案的。
代码如下:
x = np.array([[3.0,4.0],[1, 2]])
norms = np.linalg.norm(x, axis = 1, keepdims = True)
x /= norms
这段代码应该给出标准化的 x,但我不明白 np.linalg.norm() 在这里返回什么。
【问题讨论】:
-
给出 L2 范数并保持维数不变,即减少的维数保持为单例暗淡(长度轴 = 1)。
-
如果您的问题可以通过Google search 回答,那么您在此处提问之前还没有付出最少的努力。
-
docs.scipy.org/doc/numpy/reference/generated/… 中没有提到 L2 规范。 Numpy 在文档中的任何地方都没有提到欧几里得范数。 @user2357112
-
注释下:
None Frobenius norm 2-norm。如果你用谷歌搜索Frobenius norm或2 norm,你就会得到它。 -
@PranayAryal:见
Notes下的表格,上面说为ord=None计算的向量范数是2-范数。
标签: python numpy normalization