np.matmul和np.dot和@有什么区别与联系
np.matmul()
:- 专门用于矩阵乘法。
- 可以处理一维数组(视为向量)和二维数组(视为矩阵),以及更高维度的数组(执行广播后的批量矩阵乘法)。
- 对于两个一维数组,它执行它们的点积。
- 对于两个二维数组,它执行标准的矩阵乘法。
- 对于更高维度的数组,它会根据广播规则进行扩展。
np.dot()
:- 是一个更通用的函数,可以处理不同维度的数组。
- 对于一维数组,它执行点积。
- 对于二维数组(矩阵),它执行矩阵乘法。
- 对于更高维度的数组,它的行为变得复杂,因为它尝试在最后一个轴上进行求和。
@
运算符:- Python 3.5及以上版本引入的矩阵乘法运算符。
- 行为与
np.matmul()
非常相似,专门用于矩阵乘法。 - 支持一维数组(向量)和二维数组(矩阵)的乘法,以及遵循广播规则的更高维度数组的乘法。
重要的是这个:
注意:对于一维数组的点积,
np.matmul()
和@
运算符需要将数组转换为二维形式(例如,通过[:, np.newaxis]
或[np.newaxis, :]
),因为这两个函数/运算符主要设计用于矩阵乘法。而np.dot()
可以直接处理一维数组的点积。
原文地址:https://blog.csdn.net/qq_63075864/article/details/143907760
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!