• Numpy入门(三):Numpy概率模块和线性代数模块


    Numpy中经常使用到的两个模块是概率模块和线性代数模块,randomlinalg 两个模块。

    概率模块

    • 产生二项分布的随机数:np.random.binomial(n,p,size=…),其中n,p,size分别是每轮试验次数、概率、轮数

    • 产生超几何分布随机数:np.random.hypergeometric(n1,n2,n,size=…),其中参数意义分别是物件1总量、物件2总量、每次采样数、试验次数

    • 产生N个正态分布的随机数:np.random.normal(均值,标准差,N)

    • 产生N个对数正态分布的随机数:np.random.lognormal(mean,sigma,N)

      import numpy as np

      a = np.random.random(size=10)
      print a
      print a.reshape(2,5)

      [0.49377182 0.77456027 0.21313427 0.79165445 0.27105407 0.75815576
      0.44956657 0.7455359 0.95411294 0.75944278]
      [[0.49377182 0.77456027 0.21313427 0.79165445 0.27105407]
      [0.75815576 0.44956657 0.7455359 0.95411294 0.75944278]]

    线性代数模块

    • 估计线性模型中的系数:a=np.linalg.lstsq(x,b),有b=a*x

    • 求方阵的逆矩阵:np.linalg.inv(A)

    • 求广义逆矩阵:np.linalg.pinv(A)

    • 求矩阵的行列式:np.linalg.det(A)

    • 解形如AX=b的线性方程组:np.linalg.solve(A,b)

    • 求矩阵的特征值:np.linalg.eigvals(A)

    • 求特征值和特征向量:np.linalg.eig(A)

    • Svd分解:np.linalg.svd(A)

    svd分解在机器学习中,有着非常多的意义,这里使用Numpy进行svd分解:

    import numpy as np
    
    A = np.array([[2, 2], [1, 3], [0, 4], [0, 0]])
    
    U,N,P = np.linalg.svd(A)
    
    print U
    print N
    print P
    

    更多教程:阿猫学编程

  • 相关阅读:
    七,DRF 过滤排序分页异常处理
    linux 4大IO调度算法
    C关键词section作用
    单片机文件传输协议 xmodem、ymodem、zmodem
    嵌入式C编程中错误异常该如何统一处理?
    mcu内存分配算法
    算法树概念
    [SHOI2011] 双倍回文
    主席树学习总结
    「APIO2014」回文串
  • 原文地址:https://www.cnblogs.com/bugingcode/p/8303972.html
Copyright © 2020-2023  润新知