lesson4-mnist_sgd.ipynb talks about broadcasting and gives matrix-matrix product as an example. The video shows how to derive the individual columns.
Here I am just noting that the entire product can be performed as follows:
m = np.array([[1, 2, 3], [4,5,6], [7,8,9]])
n = np.array([[10,40],[20,0],[30,-5]])
(m[..., None] * n[None]).sum(axis=1)