zoukankan      html  css  js  c++  java
  • numpy.linalg.norm() 求范数

    1、linalg=linear(线性)+algebra(代数),norm则表示范数。

    2、函数参数

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

    ①x: 表示矩阵(也可以是一维)

    ②ord:范数类型

    向量的范数:

    矩阵的范数:

    ord=1:列和的最大值

    ord=2:|λE-ATA|=0,求特征值,然后求最大特征值得算术平方根(matlab在线版,计算ans=ATA,[x,y]=eig(ans),sqrt(y),x是特征向量,y是特征值)

    ord=∞:行和的最大值

    ord=None:默认情况下,是求整体的矩阵元素平方和,再开根号。(没仔细看,以为默认情况下就是矩阵的二范数,修正一下,默认情况下是求整个矩阵元素平方和再开根号)

    ③axis:处理类型

    axis=1表示按行向量处理,求多个行向量的范数

    axis=0表示按列向量处理,求多个列向量的范数

    axis=None表示矩阵范数。

    ④keepding:是否保持矩阵的二维特性

    True表示保持矩阵的二维特性,False相反

    3、代码实现

    1. import numpy as np
    2. x = np.array([
    3. [0, 3, 4],
    4. [1, 6, 4]])
    5. #默认参数ord=None,axis=None,keepdims=False
    6. print "默认参数(矩阵整体元素平方和开根号,不保留矩阵二维特性):",np.linalg.norm(x)
    7. print "矩阵整体元素平方和开根号,保留矩阵二维特性:",np.linalg.norm(x,keepdims=True)
    8. print "矩阵每个行向量求向量的2范数:",np.linalg.norm(x,axis=1,keepdims=True)
    9. print "矩阵每个列向量求向量的2范数:",np.linalg.norm(x,axis=0,keepdims=True)
    10. print "矩阵1范数:",np.linalg.norm(x,ord=1,keepdims=True)
    11. print "矩阵2范数:",np.linalg.norm(x,ord=2,keepdims=True)
    12. print "矩阵∞范数:",np.linalg.norm(x,ord=np.inf,keepdims=True)
    13. print "矩阵每个行向量求向量的1范数:",np.linalg.norm(x,ord=1,axis=1,keepdims=True)

    结果显示:

    4、总结

    ①矩阵的三种范数求法(应该是4种了在默认情况下,又多出了一种情况

    ②向量的三种范数求法

  • 相关阅读:
    【知识整理】这可能是最好的性能优化教程(一)
    【工作感悟】Android 开发者,如何提升自己的职场竞争力?
    MySql 主从复制
    MyCat 介绍、分片规则、调优的内容收集
    MyCat 安装部署,实现数据库分片存储
    [转]Activemq管理和基本介绍
    [转]ActiveMQ 即时通讯服务 浅析
    Redis 3.0集群 Window搭建方案
    【转】史上最全的“大数据”学习资源整理
    【转】【漫画解读】HDFS存储原理
  • 原文地址:https://www.cnblogs.com/leebxo/p/11918320.html
Copyright © 2011-2022 走看看