当前位置: 首页 > article >正文

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

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=(a2b3b2a3,a1b3+b1a3,a1b2b1a2)

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

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

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)}")

结果

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函数执行,也可以使用@计算。

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

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

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)}")

结果

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 multiplynp.dot or @* or multiply

http://www.kler.cn/a/471598.html

相关文章:

  • 年会抽奖Html
  • NodeLocal DNS 全攻略:从原理到应用实践
  • 服务器漏洞修复解决方案
  • ECharts系列:echart中折线图折线设置不平滑显示
  • IP查询于访问控制保护你我安全
  • 7_TypeScript Number --[深入浅出 TypeScript 测试]
  • ue5 替换角色的骨骼网格体和动画蓝图
  • 计算机网络之---计算机网络的性能评估
  • Redis中的主从/Redis八股
  • 信息安全:Java自定义Jackson序列化器进行数据脱敏
  • 如何在新窗口打开pdf文件,并修改网页标题
  • 【前端系列02】Pinia状态管理库
  • 回归预测 | MATLAB实现CNN-SVM多输入单输出回归预测
  • 云打印之快手打印组件交互协议
  • jenkins入门5 Manage Jenkins
  • PyQt5 UI混合开发,控件的提升
  • Travis CI/CD 功能详解
  • ES中的仓库和快照
  • 快速排序(霍尔法),冒泡排序 【C语言】
  • PHP:PHP脚本通过正则表达式动态修改指定文件下的php文件的sql内容加入指定条件enable_flag = ‘Y‘(“Y“)
  • JSON Schema属性使用汇总
  • Python入门教程 —— 文件操作
  • 对比式机器学习揭示了跨物种共享和特异性的脑功能结构|文献速递-视觉大模型医疗图像应用
  • AI生成前端页面:解放前端开发,拥抱AI时代的高效
  • 【深入理解Mysql】
  • 《Python趣味编程》专栏介绍与专栏目录