Python中矩阵运算中的norm范数、axis、ord参数

1. np.linalg.norm 求范数

linalg = linear + algebra,norm表示范数,范数是对向量(或矩阵)的度量,是一个标量(scalar)

np.linalg.norm(x, ord = None, axis = None, keepdims = False)

ord表示范数的种类

参数说明计算方法
默认二范数:L 2 L_2L2x 1 2 + x 2 2 + . . . + x n 2 \sqrt{x^2_1+x^2_2+...+x^2_n}x12+x22+...+xn2
ord=2二范数:L 2 L_2L2同上
ord=1一范数:L 1 L_1L1∥ x 1 ∥ + ∥ x 2 ∥ + . . . + ∥ x n ∥ \|x_1\|+\|x_2\|+...+\|x_n\|x1+x2+...+xn
ord=np.inf无穷范数:L ∞ L_\inftyLm a x ( ∥ x ∥ ) max(\|x\|)max(x)

axis表示在哪个维度计算

如何记忆

  • axis = a,其中a表示哪一维度,就在该维度上进行计算,最终产生的结果维度是,该方向的维度变为1
  • 举例:
    假设有一个三维矩阵X,X . s h a p e = ( 3 , 4 , 5 ) X.shape = (3, 4, 5)X.shape=(3,4,5),对不同维度进行求和运算,如下:
    Y 1 = n p . s u m ( X , a x i s = 0 ) Y_1=np.sum(X, axis = 0)Y1=np.sum(X,axis=0),则Y 1 . s h a p e = ( 1 , 4 , 5 ) Y_1.shape=(1, 4, 5)Y1.shape=(1,4,5)
    Y 2 = n p . s u m ( X , a x i s = 1 ) Y_2=np.sum(X, axis = 1)Y2=np.sum(X,axis=1),则Y 2 . s h a p e = ( 3 , 1 , 5 ) Y_2.shape=(3, 1, 5)Y2.shape=(3,1,5)
    Y 3 = n p . s u m ( X , a x i s = 2 ) Y_3=np.sum(X, axis = 2)Y3=np.sum(X,axis=2),则Y 1 . s h a p e = ( 3 , 4 , 1 ) Y_1.shape=(3, 4, 1)Y1.shape=(3,4,1)

版权声明:本文为XLearning88原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。