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

时间:2013-03-31 02:06:39

标签: 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)

返回:

[ 2.23606798  5.        ]

感谢。

2 个答案:

答案 0 :(得分:4)

您可以使用ufuncs来计算规范:

np.sqrt(np.sum(a*a, axis=0))

答案 1 :(得分:1)

使用numpy直接解决方案:

x = np.linalg.norm(a, axis=0)