python array 中dot运算符解释

import numpy as np

a = np.array([[1, 1], [0, 1]])
b = np.array([[2, 0], [3, 4]])
c = a * b
print('c = {}'.format(c))
c = np.dot(a, b)
"""
dot 运算逻辑
a = [ [a, b],
      [c, d] ]

b = [ [A, B],
      [C, D] ]
假设现在需要计算 np.dot(a, b) ==> a.dot(b)
result = [ [a*A + b*C, a*B + b*D],
           [c*A + d*C, c*B + d*D] ]
行乘列,然后相加
所以上述的 c 应该是
[ [1*2 + 1*3, 1*0 + 1*4],         [ [5, 4],
  [0*2 + 1*3, 1*0 + 1*4] ]  ==>     [3, 4] ]
"""
print('c = {}'.format(c))
c = a @ b
print('c = {}'.format(c))