首页 > 解决方案 > (Python Numpy)是否存在赋值运算符(例如 *=)有效但长期版本无效的情况?

问题描述

我将两个大小相同的矩阵 A 和 B 相乘,逐元素。当我使用以下代码时,出现“形状未对齐”错误:

    A = A*B

但是,以下代码可以正常工作:

    A *= B

这些有什么不同吗?是否存在第二个可以工作而第一个不能的情况?我真的很困惑,因为我认为他们做了同样的事情。

标签: pythonnumpymatrixoperators

解决方案


错误来自 A 是 nd 数组而 B 是“矩阵”类型的事实。

使用:

A = A * np.asarray(B)

转换矩阵工作。

我仍然想知道一个有效而另一个无效的原因!


推荐阅读