• Python 矩阵与矩阵以及矩阵与向量的乘法


    import numpy as np

    numpy模块的array相乘时,有两种方式:一是矩阵形式,二是挨个相乘。

    需要用矩阵形式相乘时,则要用np.dot()函数。

    #矩阵与矩阵相乘
    a = np.array([[1,2,3],[4,5,6],[7,8,9]])
    c = a.copy()
    print(a * c)
    print(np.dot(a, c))
    #a*c 得出的结果是ac中每个元素依次相乘,为3x3的矩阵
    #np.dot(a, c) 得到的结果是ac进行矩阵相乘,为3x3的矩阵

    #矩阵与向量:

    a = np.array([[1,2,3],[4,5,6],[7,8,9]])
    b = np.array([1,2,3])
    print(a.shape) #(3,3)
    print(b.shape) #(3,)
    print(a*b)
    #a中的每-行的每个数与b中的每一行的每个数都相乘(相加时也是一样,等价于b = [[1,2,3],[1,2,3],[1,2,3]]
    #array([[1,4,9],[4,10,18],[7,16,27]])
    print(b*a) #这个结果与a*b是一样的

    b = b.T
    b.shape # 即使对b转置,b依然为(3,)b为行向量还是列向量时,是看具体用的时候在矩阵左边还是右边,会自动变换
    #a 3*3矩阵,b3*1的矩阵,可以相乘
    print(np.dot(a, b)) # array([14, 32, 50]),此时b当作一个3x1的列向量,得到的结果为(3,)

    #b3*1的矩阵a 3*3矩阵,从矩阵维度来说,不能直接相乘,python会自动转换
    print(np.dot(b, a)) # array([30, 36, 42]),此时b当作一个1x3的行向量,得到的结果为(3,)
    print(np.dot(b.T, a)) # array([30, 36, 42]),此时b当作一个1x3的行向量,得到的结果为(3,)
  • 相关阅读:
    云计算初探
    MySQL、HBase、ES的特点和区别
    MongoDB、ElasticSearch、Redis、HBase这四种热门数据库的优缺点及应用场景
    主流 Kubernetes 发行版梳理
    如何在flink中传递参数
    (47)zabbix报警媒介:Ez Texting
    (46)zabbix报警媒介:Jabber
    (45)zabbix报警媒介:SMS
    (44)zabbix报警媒介:email
    (43)zabbix报警媒介介绍
  • 原文地址:https://www.cnblogs.com/adong7639/p/7592531.html
Copyright © 2020-2023  润新知