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

难以理解的求范数参数

  • 1. np.linalg.norm 求范数
    • ord表示范数的种类
    • axis表示在哪个维度计算
      • 如何记忆

1. np.linalg.norm 求范数

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

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

ord表示范数的种类

参数 说明 计算方法
默认 二范数: L 2 L_2 L2 x 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_2 L2 同上
ord=1 一范数: L 1 L_1 L1 ∥ x 1 ∥ + ∥ x 2 ∥ + . . . + ∥ x n ∥ \|x_1\|+\|x_2\|+...+\|x_n\| x1+x2+...+xn
ord=np.inf 无穷范数: L ∞ L_\infty L m 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)

你可能感兴趣的:(Python技巧)