我的张量看起来像
[[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]等
答案 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))]