我知道@是装饰器,但@=Python的用途是什么?这只是对未来想法的保留吗?
这只是我阅读时的众多问题之一tokenizer.py.
python operators matrix-multiplication python-3.x python-3.5
我最近转向Python 3.5并注意到新的矩阵乘法运算符(@)有时与numpy点运算符的行为不同.例如,对于3d数组:
import numpy as np
a = np.random.rand(8,13,13)
b = np.random.rand(8,13,13)
c = a @ b # Python 3.5+
d = np.dot(a, b)
Run Code Online (Sandbox Code Playgroud)
的@运算符返回形状的阵列:
c.shape
(8, 13, 13)
Run Code Online (Sandbox Code Playgroud)
而np.dot()函数返回:
d.shape
(8, 13, 8, 13)
Run Code Online (Sandbox Code Playgroud)
如何用numpy dot重现相同的结果?还有其他重大差异吗?