def transpose_3D(dic, data, axes=(2, 1, 0)):
    """
    Transpose pipe_3d object and dictionary
    """
    a1, a2, a3 = axes
    rdic = dict(dic)
    data = data.transpose((a1, a2, a3))
    s3 = 'FDDIMORDER' + str(int(3 - a1))
    s2 = 'FDDIMORDER' + str(int(3 - a2))
    s1 = 'FDDIMORDER' + str(int(3 - a3))
    rdic['FDDIMORDER1'] = dic[s1]
    rdic['FDDIMORDER2'] = dic[s2]
    rdic['FDDIMORDER3'] = dic[s3]
    rdic['FDDIMORDER'] = [rdic['FDDIMORDER1'], rdic['FDDIMORDER2'], rdic[
        'FDDIMORDER3'], rdic['FDDIMORDER4']]
    fn = 'FDF' + str(int(rdic['FDDIMORDER1']))
    if rdic[fn + 'QUADFLAG'] != 1.0:
        rdic['FDSIZE'] = data.shape[2] / 2.0
    else:
        rdic['FDSIZE'] = data.shape[2]
    rdic['FDSLICECOUNT'] = data.shape[1]
    rdic['FDSPECNUM'] = rdic['FDSLICECOUNT']
    return rdic, data
