主要是要把后面的矩阵看成未知数的系数就比较容易懂了.
python numpy dot 矩阵乘法_线性方程组
矩阵的最初目的,只是为线性方程组提供一个简写形式。

python numpy dot 矩阵乘法_矩阵乘法_02
然后测试了一下瞬间就明白了了.
先来一个所有的x,y,都是2的.矩阵乘法.

import numpy as np 
import pandas as pd 
 
a=[ 
    [1,1,1,3],  
    [2,2,2,2], 
    [1,1,1,3], 
    [2,2,2,2] 
  ] 
b =  [2,2,2,2] # 注意这里是列矩阵,不是行矩阵. 也就是竖着的1列4行,每个都是2 但是这样横着写恰巧符合我们人类的视角. 
#b是4个数, 要跟上面的列数相同. 
df1 = pd.DataFrame(a) 
df2 = pd.DataFrame(b)  
np.dot(df1,df2) 

得到的结果是

[ 
[12],# a第1行 * b的第一列  = 1*2 + 1*2 + 1*2 + 1*3 = 12 
[16],# a第2行 * b的第一列  = 2*2 + 2*2 + 2*2 + 2*2 = 16 
[12],# a第3行 * b的第一列  = 1*2 + 1*2 + 1*2 + 1*3 = 12 
[16] # a第4行 * b的第一列  = 1*2 + 1*2 + 1*2 + 1*3 = 12 
] 

然后再后面 加一个所有的x都是3的.矩阵乘法.

import numpy as np 
import pandas as pd 
 
a=[ 
    [1,1,1,3], 
    [2,2,2,2], 
    [1,1,1,3], 
    [2,2,2,2] 
  ] 
b =  [ 
    [2,3] , 
    [2,3] , 
    [2,3] , 
    [2,3]  
    ] 
 
df1 = pd.DataFrame(a) 
df2 = pd.DataFrame(b) 
 
np.dot(df1,df2) 

下面的结果第一列是x=2时 * 矩阵a 的结果
和 x=3 第一列 * 矩阵a 的结果

[ 
[12, 18], 
[16, 24], 
[12, 18], 
[16, 24] 
] 

同样的, 如果把b改成

b =  [ 
    [2,3,4] , 
    [2,3,4] , 
    [2,3,4] , 
    [2,3,4] , 
    ] 
# 结果是 24,32,24,32 是系数全为4的矩阵成绩 
[ 
[12, 18, 24], 
[16, 24, 32], 
[12, 18, 24], 
[16, 24, 32] 
]