Why many documentations and blog posts use @ in place of * (multiplication operator) in python.
Here is an example. They use
C@x instead of
c*x (also found in the next lines in the page). Is @ used to say it is vector multiplication etc.?
They write it like that because the underlying objects are matrices and/or vectors, not scalars.
@ indicates a matrix multiplication, and hooks into the datamodel
__matmul__, which has a different behaviour to
* operation i.e.
The most common case you will see is with numpy ndarrays, where
@ is matrix multiplication and
* is element-wise multiplication:
>>> A = np.arange(4).reshape(2,2) >>> A array([[0, 1], [2, 3]]) >>> A @ A array([[ 2, 3], [ 6, 11]]) >>> A * A array([[0, 1], [4, 9]])