def _col_sort(col_list):
    """Sorts the labeling so that colors with arrows appear last in the
    list and so that the arrowed and non-arrowed colors are sorted
    from lowest to highest concentration.

    Args:
        col_list (list): A 2D integer array of the full labeling of the
          system.

    Returns:
        colt (list): A 2D integer array of the sorted colors.
    """

    col1 = []
    col2 = []
    colt=[]
    
    # seperate the arrays into colors with arrrows and colors without
    for i in col_list:
        if i[0] < 0:
            col1.append(i)
        elif i[0] >= 0:
            col2.append(i)

    # sort each array by concentration
    col1 = sorted(col1, key = col1.count)
    col2 = sorted(col2, key = col2.count)
    # put them back together again
    for i in col1:
        colt.append(i)
    for i in col2:
        colt.append(i)
    return(colt)