Amount of products? sounds like work for np.einsum :
import numpy as np
N = 150
K = 3
M = 4
x = np.random.random((N,M))
mu = np.random.random((K,M))
gamma = np.random.random((N,K))
xbar = x-mu[:,None,:]
sigma = np.einsum('nk,knm,kno->kmo', gamma, xbar, xbar)
sigma /= gamma.sum(axis=0)[:,None,None]
Decoding'nk,knm,kno->kmo' :
(->), .
gamma, xbar xbar, np.einsum.
gamma nk, , .
xbar (3, 150, 4). knm, k n , , m - , 4, , , -, .
kno. o , o , m, m. , , m o , . .
, n (nk, knm, kno), ( kmo). np.einsum n.
k . np.einsum, k , ( ) k.
kmo , . , sigma (K,M,M) (.. (3,4,4)).