b = np.random.randint(0, 5, size=(6, 4))
res1 = np.einsum('ij, ij->i', a, b)
res2 = np.sum(a * b, axis=1)
print(res1)
print(np.allclose(res1, res2))
Элегантное выражение для построчного скалярного произведения двух матриц