def aggcv(rlist, show_stdv=True, show_progress=None, as_pandas=True):
    # pylint: disable=invalid-name
    """
    Aggregate cross-validation results.
    """
    cvmap = {}
    idx = rlist[0].split()[0]
    for line in rlist:
        arr = line.split()
        assert idx == arr[0]
        for it in arr[1:]:
            if not isinstance(it, STRING_TYPES):
                it = it.decode()
            k, v = it.split(':')
            if k not in cvmap:
                cvmap[k] = []
            cvmap[k].append(float(v))

    msg = idx

    if show_stdv:
        fmt = '\tcv-{0}:{1}+{2}'
    else:
        fmt = '\tcv-{0}:{1}'

    index = []
    results = []
    for k, v in sorted(cvmap.items(), key=lambda x: x[0]):
        v = np.array(v)
        if not isinstance(msg, STRING_TYPES):
            msg = msg.decode()
        mean, std = np.mean(v), np.std(v)
        msg += fmt.format(k, mean, std)

        index.extend([k + '-mean', k + '-std'])
        results.extend([mean, std])



    if as_pandas:
        try:
            import pandas as pd
            results = pd.Series(results, index=index)
        except ImportError:
            if show_progress is None:
                show_progress = True
    else:
        # if show_progress is default (None),
        # result will be np.ndarray as it can't hold column name
        if show_progress is None:
            show_progress = True

    if show_progress:
        sys.stderr.write(msg + '\n')

    return results
def aggcv ( rlist , show_stdv = True , show_progress = None , as_pandas = True ) : cvmap = { } idx = rlist [ 0 ] . split ( ) [ 0 ] for line in rlist : arr = line . split ( ) assert idx == arr [ 0 ] for it in arr [ 1 : ] : if not isinstance ( it , STRING_TYPES ) : it = it . decode ( ) k , v = it . split ( ':' ) if k not in cvmap : cvmap [ k ] = [ ] cvmap [ k ] . append ( float ( v ) ) msg = idx if show_stdv : fmt = '\tcv-{0}:{1}+{2}' else : fmt = '\tcv-{0}:{1}' index = [ ] results = [ ] for k , v in sorted ( cvmap . items ( ) , key = lambda x : x [ 0 ] ) : v = np . array ( v ) if not isinstance ( msg , STRING_TYPES ) : msg = msg . decode ( ) mean , std = np . mean ( v ) , np . std ( v ) msg += fmt . format ( k , mean , std ) index . extend ( [ k + '-mean' , k + '-std' ] ) results . extend ( [ mean , std ] ) if as_pandas : try : import pandas as pd results = pd . Series ( results , index = index ) except ImportError : if show_progress is None : show_progress = True else : if show_progress is None : show_progress = True if show_progress : sys . stderr . write ( msg + '\n' ) return results
Aggregate cross-validation results.