内积inner product、外积outer product、哈达玛积element-wise product

向量和矩阵的内积和外积等

最近把这些概念搞混淆了,所以总结一下。

内积 (inner product)

数量积又称标量积(Scalar product)、点积(Dot product),在欧几里得空间(Euclidean space)中称为内积(Inner product),对应元素相乘相加,结果是一个标量(即一个数)。

定义:相同位置数值相乘再求和。
注意:内积运算结果是一个数。

内积inner product、外积outer product、哈达玛积element-wise product_第1张图片
几何意义:
内积inner product、外积outer product、哈达玛积element-wise product_第2张图片

numpy中 使用np.dot或numpy.inner()实现向量的点积

代码实现:numpy.inner

注:
在数学中,内积空间(少部分人称为豪斯多夫-前希尔伯特空间)是实向量空间或具有称为内积的运算的复向量空间。空间中两个向量的内积是标量,通常用尖括号表示,如 < a , b > <a,b>。而点积是我们通常讨论的欧氏空间中内积的一种特殊形式。在工科的讨论范围内,内积和点积会混在一起说。这是无可厚非的,毕竟点积是内积的一种特殊形式。

外积1(outer product)

定义:线性代数中的向量积。
注意:运算结果是一个矩阵。
矢量的升维运算, mm维矢量和nn维矢量的外积是m∗nm∗n为矩阵。

内积inner product、外积outer product、哈达玛积element-wise product_第3张图片

代码实现:numpy.outer

克罗内克积,numpy中使用np.kron实现

外积2(exterior product)

exterior product 也翻译成外积,但指的是空间解析几何中的向量积。
注意:运算结果是一个向量。
向量积又称矢量积(Vector product)、叉积(Cross product)。
两个向量的 exterior product 本质就是叉乘,
内积inner product、外积outer product、哈达玛积element-wise product_第4张图片
代码实现:numpy.cross
针对矩阵并不存在叉积的概念,numpy中针对矩阵的叉积运算是按照向量的叉积进行运算。

注:
在数学中,叉积(Cross product)或向量积(Vector product)是在三维欧几里得向量空间中对两个向量的二元运算,用符号表示 × \times ×。给定两个线性无关的向量 a a a b b b,叉积 a × b a×b a×b是一个垂直于 a a a b b b的向量,因此垂直于包含它们的平面。它在数学、物理、工程和计算机编程中有许多应用。不应将其与点积(投影积),特别是外积混淆。
国内总会把叉积和外积混为一谈,即使是中文维基百科也是如此。英文环境里根本就没有把cross product和outer product混在一起说的情况。叉积仅仅定义在三维的欧氏空间中,且需要用到右手定则。

元素积 (element-wise product)

element-wise product 也叫哈达玛积 (Hadamard product),运算结果是一个向量,本质就是对应位置元素相乘。
element-wise product = element-wise multiplication = Hadamard product = point-wise product
内积inner product、外积outer product、哈达玛积element-wise product_第5张图片

numpy中 使用np.multiply或*实现元素积
代码实现:numpy.multiply

总结:

内积inner product、外积outer product、哈达玛积element-wise product_第6张图片
也有人这样总结:
内积inner product、外积outer product、哈达玛积element-wise product_第7张图片
注:数量、向量常用于数学;而标量、矢量常用于物理

你可能感兴趣的:(信号处理,抽象代数)