向量乘法
实际向量乘法有三种:
标量乘:对应元素相乘
点乘(内积):结果是标量,向量投影
叉乘(外积):结果是向量,方向为法向量,大小为面积
矩阵乘法
实际矩阵乘法有三种:
对应元素乘法即矩阵的Hadamard也称为SchurA∘B=aijbij∈Cm×n
普通矩阵乘法(matmul product),即对应行乘以列
矩阵的KroneckerA⊗B=a11B⋯a1nB⋮⋱⋮am1B⋯amnB∈Cm×n
numpy中的矩阵和向量乘法函数
也就是说numpy中运算符*表示np.multiply,即Hadamard积,注意numpy中还有broadcasting
dot是一个综合函数,有三个功能:普通矩阵乘法,向量内积,多维和积(前一个矩阵最后轴,后一个矩阵倒数第二个轴)
vdot是针对向量的点乘或者说是内积
inner是两个矩阵的矩阵内积,这是一个功能定义不太明确的函数,有两个功能:向量内积(点集),多维和积(最后轴)
outer是针对向量的叉乘或者说是外积
matmul是矩阵乘法,即行乘列,注意不容许其中一个矩阵是标量,如果是标量可以用运算符*,即multiply
tensordot是将两个多维数组a和b指定轴上的对应元素相乘并求和,它是最一般化的乘积运算函数。
einsum全称为Einsteinsummation convention是一种求和的范式。einsum可以用一种很简单的,统一的方式去表示很多多维张量的运算
linalg.matrix_power是矩阵乘方
kron是克罗内克积