Как эффективно сэмплировать из списка, подобного [[0,1], [0,6], [0,7], [1,4], [1,8]], в идеале в pytorch (так что это будет тензор) - PullRequest
0 голосов
/ 12 октября 2018

У меня есть тензор, который выглядит как

[[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 голосов
/ 12 октября 2018
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))]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...