What is the use of @ between two matrices
According to here,  the matmul function implements the semantics of the @ operator introduced in Python 3.5 following PEP465.

Hence, rather than np.matmul(a,b).

We can use a @ b instead.