zoukankan      html  css  js  c++  java
  • ML~线性代数~python

    机器学习中用到的线性代数,就是为了把复杂的计算放在矩阵里计算。

    创建矩阵

    import numpy as np #导入numpy库
    
    A = np.array([[3,4],[2,16]]) #创建矩阵
    B = np.array([[1,2],[5,6]])

    矩阵加法

    import numpy as np
    
    #线性代数
    A = np.array([[3,4],[2,16]])
    B = np.array([[1,2],[5,6]])
    print(A+B) #矩阵加法
    
    #-----------输出结果------------
    #[[ 4  6]
    # [ 7 22]]

    如果没用用np.array创建矩阵则会输出以下这样

    A1 = [[3,4],[2,16]]
    B1 = [[1,2],[5,6]]
    print(A1+B1)
    
    #-----------输出结果-----------
    #[[3, 4], [2, 16], [1, 2], [5, 6]]

    矩阵乘法(与实数相乘)

    import numpy as np
    
    A = np.array([[3,4],[2,16]])
    B = np.array([[1,2],[5,6]])
    
    print(2*A) #矩阵乘法,如果不用array就是输出2次A矩阵
    
    #-----------输出结果------------
    #[[ 6  8]
    # [ 4 32]]

    矩阵乘法(矩阵相乘),不遵循交换律(逆矩阵特殊),遵循结合律

    import numpy as np
    
    A = np.array([[3,4],[2,16]])
    B = np.array([[1,2],[5,6]])
    
    print(np.dot(A,B)) #矩阵相乘
    
    #-----------输出结果------------
    #[[ 23  30]
    # [ 82 100]]

    矩阵转置:将矩阵沿着45度角翻转

    import numpy as np
    
    C = np.array([[1,2,3],[4,5,6]])
    print(C.T) #C的转置矩阵
    
    #-----------输出结果------------
    #[[1 4]
    # [2 5]
    # [3 6]]

    逆矩阵:与原矩阵相乘等于单元矩阵(1)

    import numpy as np
    
    A = np.array([[3,4],[2,16]])
    B = np.linalg.inv(A) #求A的逆矩阵赋给B
    
    print(B)
    print(np.dot(A,B))
    print(np.dot(B,A))
    
    #-----------输出结果------------
    #B:
    #[[ 0.4   -0.1  ]
    # [-0.05   0.075]]
    #A*B
    #[[ 1.  0.]
    # [ 0.  1.]]
    #B*A
    #[[ 1.  0.]
    # [ 0.  1.]]
  • 相关阅读:
    pmp组织结构
    在Python中使用ArcObjects(来自Mark Cederholm UniSource Energy Services )
    C#中使用多线程访问winform的值
    白话地图投影之图解投影
    白话地图投影之初识地球
    验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保<machineKey>
    外连接
    Repeater二级绑定
    内连接
    Access多条件查询前几条数据
  • 原文地址:https://www.cnblogs.com/SHOR/p/6834915.html
Copyright © 2011-2022 走看看