如何从像[[0,1],[0,6],[0,7],[1,4],[1,8]]这样的列表中有效采样,理想情况下是在pytorch中使用(因此这将是张量)

时间:2018-10-11 22:57:24

标签: python pytorch

我的张量看起来像

[[0,1],
 [0,6],
 [0,7],
 [1,4],
 [1,8],
 [2,5],
 [2,7]]

因此,第一列始终是从0到N的非递减序列(N是固定的),第二列是某个整数(在固定范围内)。对于采样,我想从第二列中为第一列中的每个不同数字获取一个样本。在此示例中,我想从[1,6,7]中获得一个样本,为0,从[4,8]中获得一个样本,为1,从[5,7]中获得一个样本,为2,有效的样本示例可以是[1,8,7],[7,8,7]等

1 个答案:

答案 0 :(得分:0)

from itertools import groupby
from operator import itemgetter
from random import choice

tnsr = [[0, 1], [0, 6], [0, 7], [1, 4], [1, 8], [2, 5], [2, 7]]

choices = [choice(list(grp))[1] for key, grp in groupby(tnsr, key=itemgetter(0))]