human
I wrote the below code

    def merge(images, size):
        (h, w) = (images.shape[1], images.shape[2])
        img = np.zeros(((h * size[0]), (w * size[1]), 3))
        for (idx, image) in enumerate(images):
            i = (idx % size[1])
            j = (idx // size[1])
            img[(j * h):((j * h) + h), (i * w):((i * w) + w), :] = image
        return img
    def imsave(images, size, path):
        return scipy.misc.imsave(path, merge(images, size))
    assert (len(images) <= (size[0] * size[1])), 'number    of    images    should    be    equal    or    less    than    size[0]    *    size[1]    {}'.format(len(images))
    return imsave(images, size, image_path)

What's a good function header?
assistant
#Here's a good function header.

def save_images(images, size, image_path=''):