<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def decide_which_users_to_annotate(centrality_vector, number_to_annotate, already_annotated, node_to_id):
 """ Sorts a centrality vector and returns the Twitter user ids that are to be annotated. Inputs: - centrality_vector: A numpy array vector, that contains the centrality values for all users. - number_to_annotate: The number of users to annotate. - already_annotated: A python set of user twitter ids that have already been annotated. - node_to_id: A python dictionary that maps graph nodes to user twitter ids. Output: - user_id_list: A python list of Twitter user ids. """

    # Sort the centrality vector according to decreasing centrality.
    centrality_vector = np.asarray(centrality_vector)
    ind = np.argsort(np.squeeze(centrality_vector))
    if centrality_vector.size > 1:
        reversed_ind = ind[::-1]
    else:
        reversed_ind = list()
        reversed_ind = reversed_ind.append(ind)

    # Get the sublist of Twitter user ids to return.
    user_id_list = list()
    append_user_id = user_id_list.append

    counter = 0
    for node in reversed_ind:
        user_twitter_id = node_to_id[node]
        if user_twitter_id not in already_annotated:
            append_user_id(user_twitter_id)
            counter += 1

            if counter >= number_to_annotate:
                break

    return user_id_list