<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def initialize_from_assignments(assignments, k, max_assign_weight=0.75):
 """ Creates a weight initialization matrix from Poisson clustering assignments. Args: assignments (array):
 1D array of integers, of length cells k (int):
 number of states/clusters max_assign_weight (float, optional):
 between 0 and 1 - how much weight to assign to the highest cluster. Default: 0.75 Returns: init_W (array):
 k x cells """

    cells = len(assignments)
    init_W = np.zeros((k, cells))
    for i, a in enumerate(assignments):
        # entirely arbitrary... maybe it would be better to scale
        # the weights based on k?
        init_W[a, i] = max_assign_weight
        for a2 in range(k):
            if a2!=a:
                init_W[a2, i] = (1-max_assign_weight)/(k-1)
    return init_W/init_W.sum(0)