自学内容网 自学内容网

np.matmul和np.dot和@有什么区别与联系

  1. np.matmul():
    • 专门用于矩阵乘法。
    • 可以处理一维数组(视为向量)和二维数组(视为矩阵),以及更高维度的数组(执行广播后的批量矩阵乘法)。
    • 对于两个一维数组,它执行它们的点积。
    • 对于两个二维数组,它执行标准的矩阵乘法。
    • 对于更高维度的数组,它会根据广播规则进行扩展。
  2. np.dot():
    • 是一个更通用的函数,可以处理不同维度的数组。
    • 对于一维数组,它执行点积。
    • 对于二维数组(矩阵),它执行矩阵乘法。
    • 对于更高维度的数组,它的行为变得复杂,因为它尝试在最后一个轴上进行求和。
  3. @ 运算符:
    • Python 3.5及以上版本引入的矩阵乘法运算符。
    • 行为与np.matmul()非常相似,专门用于矩阵乘法。
    • 支持一维数组(向量)和二维数组(矩阵)的乘法,以及遵循广播规则的更高维度数组的乘法。

重要的是这个:

注意:对于一维数组的点积,np.matmul()@ 运算符需要将数组转换为二维形式(例如,通过[:, np.newaxis][np.newaxis, :]),因为这两个函数/运算符主要设计用于矩阵乘法。而np.dot()可以直接处理一维数组的点积。


原文地址:https://blog.csdn.net/qq_63075864/article/details/143907760

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!