human
I wrote the below code

    def _rank1d(data, use_missing=False):
        n = data.count()
        rk = np.empty(data.size, dtype=float)
        idx = data.argsort()
        rk[idx[:n]] = np.arange(1, (n + 1))
        if use_missing:
            rk[idx[n:]] = ((n + 1) / 2.0)
        else:
            rk[idx[n:]] = 0
        repeats = find_repeats(data.copy())
        for r in repeats[0]:
            condition = (data == r).filled(False)
            rk[condition] = rk[condition].mean()
        return rk
    data = ma.array(data, copy=False)
    if (axis is None):
        if (data.ndim > 1):
            return _rank1d(data.ravel(), use_missing).reshape(data.shape)
        else:
            return _rank1d(data, use_missing)
    else:
        return ma.apply_along_axis(_rank1d, axis, data, use_missing).view(ndarray)

What's a good function header?

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

def rankdata(data, axis=None, use_missing=False):