def generate(self,N,keep=True): templabels = Labels(components=self.components,weights=self.weights,N=N) out = np.empty(self.components[0].rvs(N).shape) counts = np.bincount(templabels.z,minlength=len(self.components)) for idx,(c,count) in enumerate(zip(self.components,counts)): out[templabels.z == idx,...] = c.rvs(count) perm = np.random.permutation(N) out = out[perm] templabels.z = templabels.z[perm] if keep: templabels.data = out self.labels_list.append(templabels) return out, templabels.z
def generate(self, N, keep=True): templabels = Labels(model=self, N=N) out = np.empty(self.components[0].rvs(N).shape) counts = np.bincount(templabels.z, minlength=len(self.components)) for idx, (c, count) in enumerate(zip(self.components, counts)): out[templabels.z == idx, ...] = c.rvs(count) perm = np.random.permutation(N) out = out[perm] templabels.z = templabels.z[perm] if keep: templabels.data = out self.labels_list.append(templabels) return out, templabels.z