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.?
>Solution :
They write it like that because the underlying objects are matrices and/or vectors, not scalars.
The operator @ indicates a matrix multiplication, and hooks into the datamodel __matmul__, which has a different behaviour to * operation i.e. __mul__.
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]])