import numpy as np
import scipy.linalg as la
在进行数学运算的时候,我们会使用到一些矩阵相关的运算,其中kron就是其中的一个,但是kron并不是我们在线性代数里面用到的那种矩阵的乘法运算,下面我们通过一个例子去深入的理解kron的用法
A=np.array([[1,2,3],[4,5,6]])
B=np.array([[10,20]])
la.kron(B,A)
输出的结果为:
array([[ 10, 20, 30, 20, 40, 60],
[ 40, 50, 60, 80, 100, 120]])
我们可以看到这是把第一个参数B拆开,用B里面的每一项去遍历的乘A里面的每一项。
接下来我们在看一种情况:
C=np.array([[10],[20]])
la.kron(C,A)
得到的结果为:
array([[ 10, 20, 30],
[ 40, 50, 60],
[ 20, 40, 60],
[ 80, 100, 120]])
由此我们可以进一步的认为,我们得到的这个结果最外层的形状是和第一个参数的形状是一样的,然后每个位置的值去遍历乘取第二个参数的值。其实这个说白了就是我们数学上面使用的直积。