use*_*632 1 python numpy linear-algebra matrix-multiplication dot-product
如果我在导入numpy的python代码中看到以下行:
c = a * b
Run Code Online (Sandbox Code Playgroud)
确定此操作是作为Hadamard(元素方向)还是点积(逐点)操作执行的最简单,最实用的方法是什么?
对于Hadamard产品来说,A和B的列和行大小必须相同.对于点积,只有A的列大小必须与B的行大小相同,对吗?所以我可以查找两者的形状并找出使用的操作?
这在PEP 465中讨论.总之,它取决于类型A和B.如果它们是numpy.ndarray,则星形意味着Hadamard产品和矩阵乘法用该.dot()方法完成.如果它们是numpy.matrix,则星形意味着矩阵乘法.如果它们是其他类型(例如来自NumPy以外的库),则必须查阅该类型的文档.如果它们是混合类型,matrix则优先考虑(根据评论中的@ajcr).
在Python 3.5中,希望这更容易,因为@符号是作为专用矩阵乘法运算符引入的(有关详细信息,请参阅上面的PEP).这不会被移植到2.7.x,所以这是升级的另一个原因.
| 归档时间: |
|
| 查看次数: |
3266 次 |
| 最近记录: |