def sample(self, n=1):
counts = np.random.multinomial(n, self.weights, size=1)
samples = np.empty((n, len(self.means[0])))
k = 0
for i in range(len(self.means)):
for j in range(len(self.means[i])):
samples[k:k+counts[i], j] = stats.norm.rvs(loc=self.means[i, j], scale=self.stds[i, j], size=counts[i])
k += counts[i]
np.shuffle(samples)
return samples
评论列表
文章目录