def density(w, **kwargs):
    """Compute density of a sparse vector

    Parameters
    ----------
    w : array_like
        The sparse vector

    Returns
    -------
    float
        The density of w, between 0 and 1
    """
    if hasattr(w, 'toarray'):
        d = float(w.nnz) / (w.shape[0] * w.shape[1])
    else:
        d = 0 if w is None else float((w != 0).sum()) / w.size
    return d
