@运算符与ndarray或矩阵操作数

时间:2018-01-18 17:27:25

标签: python python-3.x

之前我已经能够使用@进行矩阵乘法,但由于某种原因,它不再起作用了。我正在运行Python 3.5.4,在IPython 6.2.1或笔记本5.0.0中,出现了这个意外错误:

In [1]: from numpy import arange

In [2]: A = arange(5)

In [3]: B = arange(15).reshape((5,3))

In [4]: A @ B
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-455d622f3b50> in <module>()
----> 1 A @ B

TypeError: unsupported operand type(s) for @: 'numpy.ndarray' and 'numpy.ndarray'

使用matrix类型无效:

In [5]: from numpy import matrix

In [6]: A = matrix(arange(5))

In [7]: B = matrix(arange(15).reshape((5,3)))

In [8]: A @ B
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-455d622f3b50> in <module>()
----> 1 A @ B

TypeError: unsupported operand type(s) for @: 'matrix' and 'matrix'

我在这里完全失败了。 @运算符是否已弃用?我错过了一些明显的东西吗这是在我修改一年前工作正常的笔记本时出现的。是否有其他信息可以帮助诊断正在发生的事情?

1 个答案:

答案 0 :(得分:1)

据我所知,根据cxw的评论,结果是正确的numpy版本。我已经更新了numpy,现在一切似乎都工作正常。