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])
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