python - @和*与python矩阵乘法有什么区别?
问题描述
我知道一个做一种矩阵乘法,另一个做另一种,但永远记不起区别。
正在做
>>> import numpy as np
>>> a = np.matrix([[1, 2],[3,4]])
>>> print(a * a)
[[ 7 10]
[15 22]]
>>> print(a @ a)
[[ 7 10]
[15 22]]
似乎给出了相同的答案,这让我感到困惑。
解决方案
a * b
是一个乘法运算符 - 它将返回元素a
乘以b
.
当a
和b
都是矩阵(具体由 定义np.matrix
)时,结果将与@
运算符相同。
a @ b
是矩阵乘法(与向量一起使用时的点积)。如果您没有指定它a
是一个矩阵并且使用了一个数组,a * a
那么它将返回每个元素的a
平方。
推荐阅读
- android - 如何在片段内的对象中实现 onDragListener?
- angular6 - Angular 6 HttpClient 未将响应转换为接口
- bitbucket - 在 Bitbucket 上的 README.md 中写入一个数字,但没有指向提交的链接
- django - RelatedObjectDoesNotExist 在 /login/
- bash - 为 3 个不同的变量创建一个循环以输出所有可能的组合
- scala - 如何从 Either 返回 Right 类?
- machine-learning - 深度学习不适合在训练范围之外拟合简单的非线性函数(外推)?
- eclipse-plugin - STM32 Atollic TrueSTUDIO - 内存的图形视图
- java - 为什么程序在启动后立即关闭?
- windows - JetBrains IDE 启动时出错:应用程序无法正确启动 (0xc000007b)