• 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.]]
  • 相关阅读:
    hadoop20---代理另一种方式
    hadoop19---动态代理
    hadoop18---socket实现rpc
    JAVA发送HttpClient
    使用Socket&反射&Java流操作进行方法的远程调用(模拟RPC远程调用)
    hadoop17---RPC和Socket的区别
    hadoop16---反射
    hadoop15---activemq
    Struts2标签实现for循环
    struts2的标签中得到JSP脚本的变量值
  • 原文地址:https://www.cnblogs.com/SHOR/p/6834915.html
Copyright © 2020-2023  润新知