human
I wrote the below code

    def _band2(x1, x2, curve):
        xb = np.vstack([x1, x2])
        if (np.any((curve < xb.min(axis=0))) or np.any((curve > xb.max(axis=0)))):
            res = 0
        else:
            res = 1
        return res
    def _band_mod(x1, x2, curve):
        xb = np.vstack([x1, x2])
        res = np.logical_and((curve >= xb.min(axis=0)), (curve <= xb.max(axis=0)))
        return (np.sum(res) / float(res.size))
    if (method == 'BD2'):
        band = _band2
    elif (method == 'MBD'):
        band = _band_mod
    else:
        raise ValueError('Unknown    input    value    for    parameter    `method`.')
    num = data.shape[0]
    ix = np.arange(num)
    depth = []
    for ii in range(num):
        res = 0
        for (ix1, ix2) in combinations(ix, 2):
            res += band(data[ix1, :], data[ix2, :], data[ii, :])
        normfactor = ((factorial(num) / 2.0) / factorial((num - 2)))
        depth.append((float(res) / normfactor))
    return np.asarray(depth)

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

def banddepth(data, method='MBD'):