python中的“*”,“np.dot()” 和 “@” 的区别 | 您所在的位置:网站首页 › python中_和__的区别 › python中的“*”,“np.dot()” 和 “@” 的区别 |
前言
经常会用到python来进行矩阵的运算,发现几种跟矩阵相关的乘法运算:“*”,“np.dot()” 和 “@” 现总结一下,并配合代码查看各自计算结果。 矩阵A,B的定义用numpy的np.array()定义矩阵A,B,如下: import numpy as np A = np.array([ [1, 2, 3], [4, 5, 6] ]) B = np.array([ [6, 5], [4, 3], [2, 1] ]) A.T*B:“*”运算是将两个向量中每个元素进行相乘,是数乘运算,需要两个矩阵维度相同,所以需要A的转置与B做“*”运算: print(A.T*B) ''' [[ 6 20] [ 8 15] [ 6 6]] ''' np.dot(A, B): print(np.dot(A, B)) ''' [[20 14] [56 41]] ''' A@B: print(A @ B) ''' [[20 14] [56 41]] ''' 总结:对于用np.array()多维数组定义的矩阵,“*”运算是单纯做对应位置元素的数乘,“np.dot()”和“@”运算都可以起到矩阵乘法的作用。
|
CopyRight 2018-2019 实验室设备网 版权所有 |