• NumPy矩阵运算


    矩阵初始化

    import numpy as np
    m=np.zeros([3,5])#
    print (m)
    n=np.ones([3,5])
    print(n)
    

    生成3X5的矩阵值为0,1;

    #生成随机数矩阵

    mn=np.random.rand(3,5)#3行4列的0-1之间的随机数矩阵
    print(mn)
    

    #单位矩阵
    z=np.eye(4)#4行4列一条对角线为1的单位矩阵
    print (z)

    2,矩阵的元素运算

        • /
          矩阵相加相减的条件
          必须矩阵大小相等
          eg:
    import numpy as np
    z=np.eye(4)#这是一个对角线为1的矩阵
    print (z)
    n=np.ones([4,4])
    print (n)
    print(z+n)
    

    矩阵数乘:一个数乘以整个矩阵

    import numpy as np
    z=np.mat([[1,2,3],[4,5,6],[7,8,9]])
    z=10*z
    print (z)
    

    矩阵所有元素求和
    #这里区别sum(),和np.sum();sum()返回的是每一列的和组成的裂变,np.sum()返回矩阵和

    import numpy as np
    n=np.mat([[1,2,3],[4,5,6],[7,8,9]])
    print (np.sum(n))
    

    矩阵元素的积
    1.如果两个矩阵维度相同,则乘相同位置数相乘

    import numpy as np
    n=np.random.rand(3,3)#生成3X3的矩阵值在0-1之间
    print (n)
    m=np.eye(3)#单位矩阵
    print (m)
    print (np.multiply(n,m))#也可以用‘*’号
    

    输出:
    [[0.26886197 0.92144212 0.62190632]
    [0.11934666 0.83958397 0.1564729 ]
    [0.41122839 0.87522917 0.82239665]]
    [[1. 0. 0.]
    [0. 1. 0.]
    [0. 0. 1.]]
    [[0.26886197 0. 0. ]
    [0. 0.83958397 0. ]
    [0. 0. 0.82239665]]

    2.两个矩阵维度不同:在大的矩阵中找到与另一个大小一样的矩阵相乘,得到一个列表

    import numpy as np
    n=np.mat([[1,2,3],[4,5,6],[7,8,9]])
    m=np.mat([[2,2,2]])
    print (np.multiply(n,m))
    

    输出:
    [[ 2 4 6]
    [ 8 10 12]
    [14 16 18]]

    矩阵个元素的二次幂

    import numpy as np
    n=np.mat([[1,2,3],[4,5,6],[7,8,9]])
    print (np.power(n,2))
    

    输出:
    [[ 1 4 9]
    [16 25 36]
    [49 64 81]]


    3.矩阵的乘法

    from numpy import *
    n=mat([[1,2,3],[4,5,6],[7,8,9]])
    m=mat([[1],[2],[3])
    print (n)
    print(m)
    print(n*m)#1*1+2*2+3*3=14
    

    输出:
    [[1 2 3]
    [4 5 6]
    [7 8 9]]
    [[1]
    [2]
    [3]]
    [[14]
    [32]
    [50]]


    4.矩阵的转置

    from numpy import *
    n=mat([[1,2,3],[4,5,6],[7,8,9]])
    print (n.T)#90度向左转
    print(n.transpose)#https://blog.csdn.net/xiongchengluo1129/article/details/79017142
    

    5.矩阵的其他操作

    行列

    from numpy import *
    m=mat([[1,2,3],[4,5,6],[7,8,9]])
    [m,n]=shape(m)
    print ('H L',m,n)#矩阵的行列数
    

    输出:
    H L 3 3

    切片

    from numpy import *
    m=mat([[1,2,3],[4,5,6],[7,8,9]])
    n=m[0]#按行切片
    print (n)
    k=m.T[0]#按列切片
    print (k)
    

    输出:
    [[1 2 3]]
    [[1 4 7]]

    矩阵复制

    from numpy import *
    m=mat([[1,2,3],[4,5,6],[7,8,9]])
    n=m.copy()#矩阵的复制
    print(n)
    

    输出:
    [[1 2 3]
    [4 5 6]
    [7 8 9]]

    追求吾之所爱
  • 相关阅读:
    双循环解决添加列表问题
    贪心算法
    隔板法发红包
    python小兵之时间模块
    开发规范
    python 小兵(12)模块1
    Linux系统
    刷题
    Socket
    栈和队列
  • 原文地址:https://www.cnblogs.com/rstz/p/14391092.html
Copyright © 2020-2023  润新知