本文翻自PEP 465
目前虽然没有内置的Python类型实现这个新运算符,但是,它可以通过定义__matmul __(),__ rmatmul __()和__imatmul __()来实现常规,反射和就地的矩阵乘法。这些方法的语义类似于定义其他中缀算术运算符的方法。矩阵乘法在数学,科学,工程学的许多领域都是一个非常常见的操作,并且“@”使我们能编写更清晰的代码:
用
S = (H @ beta - r).T @ inv(H @ V @ H.T) @ (H @ beta - r)
来替代
S = dot((dot(H, beta) - r).T,
dot(inv(dot(dot(H, V), H.T)), dot(H, beta) - r))
NumPy 1.10已经支持这个新的操作(经过译者测试,pytorch也已支持):
>>> import numpy
>>> x = numpy.ones(3)
>>> x
array([ 1., 1., 1.])
>>> m = numpy.eye(3)
>>> m
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
>>> x @ m
array([ 1., 1., 1.])
另见详细解释