矩阵和向量点乘叉乘元素乘

Date: 2025.01.07

Author: Xin Pan

回顾下矩阵和向量的各种乘法。

向量

点乘

又叫做点积、内积、数量积、标量积。 a = a 1 , a 2 , . . . , a n a=a_1,a_2,...,a_n a=a1,a2,...,an和 b = b 1 , b 2 , . . . , b n b=b_1,b_2,...,b_n b=b1,b2,...,bn点乘的结果是一个标量,记作 a . b a.b a.b

a . b = ∑ i = 1 n a i b i = a 1 b 1 + a 2 b 2 + . . . + a n b n a.b=\sum_{i=1}^na_ib_i=a_1b_1+a_2b_2+...+a_nb_n a.b=∑i=1naibi=a1b1+a2b2+...+anbn

叉乘

又叫向量积、外积、叉积,叉乘, a = a 1 , a 2 , . . . , a n a=a_1,a_2,...,a_n a=a1,a2,...,an和 b = b 1 , b 2 , . . . , b n b=b_1,b_2,...,b_n b=b1,b2,...,bn叉乘的运算结果是一个向量,并且两个向量的叉积与这两个向量组成的坐标平面垂直,记作 a x b axb axb

a x b = ( a 2 b 3 − b 2 a 3 , − a 1 b 3 + b 1 a 3 , a 1 b 2 − b 1 a 2 ) axb=(a_2b_3-b_2a_3,-a_1b_3+b_1a_3,a_1b_2-b_1a_2) axb=(a2b3−b2a3,−a1b3+b1a3,a1b2−b1a2)

元素乘(我自己起的名,为了方便理解)

对应位置元素相成,维度不变。

python 复制代码
import numpy as np

if __name__ == "__main__":
    a = np.array([1, 2, 3])
    b = np.array([4, 5, 6])

    print(f"Dot={np.dot(a,b)}")
    print(f"Cross={np.cross(a,b)}")
    print(f"@ times={a@b}")
    print(f"* times={a*b}")
    print(f"np.multiply={np.multiply(a,b)}")

结果

latex 复制代码
Dot=32
Cross=[-3  6 -3]
@ times=32
* times=[ 4 10 18]
np.multiply=[ 4 10 18]

矩阵

点乘

是矩阵各个对应元素相乘, 这个时候要求两个矩阵必须同样大小。做的事和向量的元素乘一样的。可以直接使用星号(*)进行表示。

叉乘

矩阵的乘法就是矩阵a的第m行乘以矩阵b的第n列,各个元素对应相乘然后求和作为第m行n列元素的值。使用np.dot函数执行,也可以使用@计算。

元素乘(我自己起的名,为了方便理解)

和矩阵点乘做的是一样的事情。

python 复制代码
import numpy as np

if __name__ == "__main__":
    a = np.array([[1, 2, 3], [4, 5, 6]])
    b = np.array([[7, 8, 9], [10, 11, 12]])

    print(f"Dot={np.dot(a,b.T)}")
    print(f"Cross={np.cross(a,b)}")
    print(f"@ times={a@b.T}")
    print(f"* times={a*b}")
    print(f"np.multiply={np.multiply(a,b)}")

结果

latex 复制代码
Dot=[[ 50  68]
 [122 167]]
Cross=[[-6 12 -6]
 [-6 12 -6]]
@ times=[[ 50  68]
 [122 167]]
* times=[[ 7 16 27]
 [40 55 72]]
np.multiply=[[ 7 16 27]
 [40 55 72]]

总结

维度 点乘结果 叉乘结果 元素乘结果
向量 1,N 或 N,1 数 向量 向量
矩阵 M,N M,N可能一致 矩阵 矩阵 矩阵
维度 点乘表示 叉乘表示 元素乘表示
向量 1,N 或 N,1 np.dot or @ np.cross * or multiply
矩阵 M,N M,N可能一致 * or multiply np.dot or @ * or multiply
相关推荐
青少儿编程课堂7 小时前
AC自动机多模式串匹配精讲:校园关键词巡检实战解析
c++·python·算法·bfs·信息学竞赛
hhzz7 小时前
【YOLO 入门到精通 04】理解任务与模型家族:7 大 CV 任务与 YOLO26 选型指南
人工智能·python·深度学习·yolo·计算机视觉
Escalating_xu8 小时前
【Python】使用库:标准库、第三方库、pip、项目实战与程序打包
java·python·pip
水獭比特8 小时前
Agent 工具审批不止一个按钮:用 v0.22.1 复盘入口、恢复和副作用
人工智能·python
苦瓜打怪兽8 小时前
leetcode 热题100(11. 盛最多水的容器)
python·算法·leetcode
砚底藏山河8 小时前
量化实战:回测数据底座快照与版本管理进阶
java·大数据·python·金融·maven
“AI国潮设计-小江”8 小时前
《Python+SDXL实战:用ControlNet批量生成“英歌舞麻将糕”IP,附自动化脚本与商用思路》
开发语言·人工智能·python·prompt·aigc
逗脑IDE10 小时前
零基础学ESP32:RFID无线射频卡——让ESP32拥有“刷卡“能力!
开发语言·网络·人工智能·python·esp32·硬件开发
协皓家具10 小时前
2026年广州岛台吧台椅厂家有啥新变化
大数据·运维·python·devops
yuniko-n10 小时前
【Java】字符串相关坑点
java·开发语言·python