<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def generate_poisson_data(centers, n_cells, cluster_probs=None):
 """ Generates poisson-distributed data, given a set of means for each cluster. Args: centers (array):
 genes x clusters matrix n_cells (int):
 number of output cells cluster_probs (array):
 prior probability for each cluster. Default: uniform. Returns: output - array with shape genes x n_cells labels - array of cluster labels """

    genes, clusters = centers.shape
    output = np.zeros((genes, n_cells))
    if cluster_probs is None:
        cluster_probs = np.ones(clusters)/clusters
    labels = []
    for i in range(n_cells):
        c = np.random.choice(range(clusters), p=cluster_probs)
        labels.append(c)
        output[:,i] = np.random.poisson(centers[:,c])
    return output, np.array(labels)