コード例 #1
0
def tmmsss_merge(tmmsss0, tmmsss1):
    '''
    将两份包含样本数、平均值和方差、协方差的中间结果合并
    :param tmmsss0: 长度6的一维数组,分别记录了(count,mx,my,sxx,syy,sxy)
    :param tmmsss1: 长度6的一维数组,分别记录了(count,mx,my,sxx,syy,sxy)
    :return: 长度6的一维数组,分别记录了(count,mx,my,sxx,syy,sxy)
    '''
    count_0 = tmmsss0[0]
    mx_0 = tmmsss0[1]
    my_0 = tmmsss0[2]
    sxx_0 = tmmsss0[3]
    syy_0 = tmmsss0[4]
    sxy_0 = tmmsss0[5]
    count_1 = tmmsss1[0]
    mx_1 = tmmsss1[1]
    my_1 = tmmsss1[2]
    sxx_1 = tmmsss1[3]
    syy_1 = tmmsss1[4]
    sxy_1 = tmmsss1[5]
    _, _, sxx_total = ss_iteration(count_0, mx_0, sxx_0, count_1, mx_1, sxx_1)
    _, _, syy_total = ss_iteration(count_0, my_0, syy_0, count_1, my_1, syy_1)
    count_total, mx_total, my_total, sxy_total = sxy_iteration(
        count_0, mx_0, my_0, sxy_0, count_1, mx_1, my_1, sxy_1)
    return np.array(
        [count_total, mx_total, my_total, sxx_total, syy_total, sxy_total])
コード例 #2
0
ファイル: score.py プロジェクト: tfonda/meteva
def tmmsss_merge(tmmsss0, tmmsss1):
    '''
    将两份包含样本数、平均值和方差、协方差的中间结果合并
    :param tmmsss0: 长度6的一维数组,分别记录了(count,mx,my,sxx,syy,sxy)
    :param tmmsss1: 长度6的一维数组,分别记录了(count,mx,my,sxx,syy,sxy)
    :return: 长度6的一维数组,分别记录了(count,mx,my,sxx,syy,sxy)
    '''
    tmmsss_array_list = []
    tmmsss0_shape = list(tmmsss0.shape)
    tmmsss1_shape = list(tmmsss1.shape)
    if tmmsss0_shape != tmmsss1_shape:
        print('tmmsss0和tmmsss1维度不匹配')
        return
    tmmsss0 = tmmsss0.reshape((-1, 6))
    tmmsss1 = tmmsss1.reshape((-1, 6))
    new_tmmsss1_shape = tmmsss1.shape
    for line in range(new_tmmsss1_shape[0]):
        tmmsss1_piece = tmmsss1[line, :]
        tmmsss0_piece = tmmsss0[line, :]
        count_0 = tmmsss0_piece[0]
        mx_0 = tmmsss0_piece[1]
        my_0 = tmmsss0_piece[2]
        sxx_0 = tmmsss0_piece[3]
        syy_0 = tmmsss0_piece[4]
        sxy_0 = tmmsss0_piece[5]
        count_1 = tmmsss1_piece[0]
        mx_1 = tmmsss1_piece[1]
        my_1 = tmmsss1_piece[2]
        sxx_1 = tmmsss1_piece[3]
        syy_1 = tmmsss1_piece[4]
        sxy_1 = tmmsss1_piece[5]
        _, _, sxx_total = ss_iteration(count_0, mx_0, sxx_0, count_1, mx_1,
                                       sxx_1)
        _, _, syy_total = ss_iteration(count_0, my_0, syy_0, count_1, my_1,
                                       syy_1)
        count_total, mx_total, my_total, sxy_total = sxy_iteration(
            count_0, mx_0, my_0, sxy_0, count_1, mx_1, my_1, sxy_1)

        tmmsss_array_list.append(
            np.array([
                count_total, mx_total, my_total, sxx_total, syy_total,
                sxy_total
            ]))
    tmmsss_array = np.array(tmmsss_array_list)
    tmmsss_array = tmmsss_array.reshape(tmmsss0_shape)
    return tmmsss_array