目录

    Python中的Numpy 矩阵运算

    在学习线性代数时我们所接触的矩阵之间的乘法是矩阵的叉乘,有这样一个前提:

    若矩阵A是m*n阶的,B是p*q阶的矩阵,AB能相乘,首先得满足:n=p,即A的列数要等于B的行数。运算的方法如下图:

    Python中的Numpy 矩阵运算

    当时学线性代数时老师教的更为直观记法:

    Python中的Numpy 矩阵运算

    点乘则是这样:

    Python中的Numpy 矩阵运算

    假如有a,b两个矩阵,在Matlab中我们实现点乘和叉乘的方式分别如下:

    a.*b %表示点乘
    a*b %表示叉乘
    
    
    

    下面我们来看看python中的操作:

    import numpy as np
    
    a = np.arange(1, 10).reshape(3, 3)
    b = np.arange(1, 10).reshape(3, 3)
    print(a)
    print(a*b)  # 点乘只允许1*m和m*n
    
    a1 = np.mat(np.arange(1, 10).reshape(3, 3))
    a2 = np.mat(np.arange(1, 10).reshape(3, 3))
    a3 = np.dot(a1, a2) # 叉乘使用dot
    print(a1)
    print(a3)
    
    

    运行结果:

    Python中的Numpy 矩阵运算

    使用python操作刚好与Matlab相反,使用点乘计算实际上是各数组相同下标相乘。Numpy库中的dot函数则是为了实现数组相乘。

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。