计算列范数作为矩阵中的向量

Cup*_*tor 3 python numpy linear-algebra matrix-multiplication

我正在寻找将列的范数作为矩阵中的向量计算的最佳方法。我现在的代码是这样的,但是我确信它可以变得更好(也许是numpy?):

import numpy as np
def norm(a):
    ret=np.zeros(a.shape[1])
    for i in range(a.shape[1]):
        ret[i]=np.linalg.norm(a[:,i])
    return ret

a=np.array([[1,3],[2,4]])
print norm(a)
Run Code Online (Sandbox Code Playgroud)

哪个返回:

[ 2.23606798  5.        ]
Run Code Online (Sandbox Code Playgroud)

谢谢。

HYR*_*YRY 5

您可以使用ufuncs计算范数:

np.sqrt(np.sum(a*a, axis=0))
Run Code Online (Sandbox Code Playgroud)