Return list of best to worst binary splits along the x and y axis.

def get_partition_scores(image, min_w=1, min_h=1):
    """Return list of best to worst binary splits along the x and y axis.

    """
    h, w = image.shape[:2]
    if w == 0 or h == 0:
        return []
    area = h * w
    cnz = numpy.count_nonzero
    total = cnz(image)
    if total == 0 or area == total:
        return []
    if h < min_h * 2:
        y_c = []
    else:
        y_c = [(-abs((count / ((h - y) * w)) - ((total - count) / (y * w))),
                y, 0)
               for count, y in ((cnz(image[y:]), y)
                                for y in range(min_h, image.shape[0] - min_h))]
    if w < min_w * 2:
        x_c = []
    else:
        x_c = [(-abs((count / (h * (w - x))) - ((total - count) / (h * x))),
                x, 1)
               for count, x in ((cnz(image[:, x:]), x)
                                for x in range(min_w, image.shape[1] - min_w))]
    return sorted(x_c + y_c)