Find peakset from the dataset

    Parameters
    -----------
    dataset : list
        A list of data
    basecolumn : int
        An index of column for finding peaks
    method : str
        A method name of numpy for finding peaks
    where : function
        A function which recieve ``data`` and return numpy indexing list

    Returns
    -------
    list
        A list of peaks of each axis (list)

def find_peakset(dataset, basecolumn=-1, method='', where=None):
    """
    Find peakset from the dataset

    Parameters
    -----------
    dataset : list
        A list of data
    basecolumn : int
        An index of column for finding peaks
    method : str
        A method name of numpy for finding peaks
    where : function
        A function which recieve ``data`` and return numpy indexing list

    Returns
    -------
    list
        A list of peaks of each axis (list)
    """
    peakset = []
    where_i = None
    for data in dataset:
        base = data[basecolumn]
        base = maidenhair.statistics.average(base)
        # limit data points
        if where:
            adata = [maidenhair.statistics.average(x) for x in data]
            where_i = np.where(where(adata))
            base = base[where_i]
        # find peak index
        index = getattr(np, method, np.argmax)(base)
        # create peakset
        for a, axis in enumerate(data):
            if len(peakset) <= a:
                peakset.append([])
            if where_i:
                axis = axis[where_i]
            peakset[a].append(axis[index])
    peakset = np.array(peakset)
    return peakset