numpy中矩阵乘法,星乘(*)和点乘(.dot)的区别

import numpy
a = numpy.array([[1,2],
                 [3,4]])
b = numpy.array([[5,6],
                 [7,8]])
a*b
>>>array([[ 5, 12],
          [21, 32]])
a.dot(b)
>>>array([[19, 22],
          [43, 50]])
numpy.dot(a,b)
>>>array([[19, 22],
          [43, 50]])
numpy.dot(b,a)
>>>array([[23, 34],
          [31, 46]])

总结:

星乘表示矩阵内各对应位置相乘,矩阵a*b下标(0,0)=矩阵a下标(0,0) x 矩阵b下标(0,0);

点乘表示求矩阵内积,二维数组称为矩阵积(mastrix product)。

用文字表述:

所得到的数组中的每个元素为,第一个矩阵中与该元素行号相同的元素与第二个矩阵与该元素列号相同的元素,两两相乘后再求和。

文字难以理解,直接上图:

综上所述,二维矩阵a*b下标(0,1)=矩阵a下标(0,) x 矩阵b下标(,1)

补充:

一维矩阵下标

[(0),(1),(2),(3)]
 

二维矩阵下标

  1.  
    [[( 0, 0),( 0, 1),( 0, 2),( 0, 3)],
  2.  
    [( 1, 0),( 1, 1),( 1, 2),( 1, 3)],
  3.  
    [( 2, 0),( 2, 1),( 2, 2),( 2, 3)],
  4.  
    [( 3, 0),( 3, 1),( 3, 2),( 3, 3)]]

猜你喜欢

转载自www.cnblogs.com/php-linux/p/12558764.html