У меня есть массив 41000x3 numpy, который я называю «отсортированным списком» в приведенной ниже функции. В третьем столбце есть куча значений, некоторые из которых являются дубликатами, а другие - нет. Я хотел бы взять образец уникальных значений (без дубликатов) из третьего столбца, который является отсортированным списком [:, 2]. Я думаю, что я могу сделать это легко с помощью numpy.random.sample (sortedlist [:, 2], sample_size). Проблема в том, что я хотел бы вернуть не только эти значения, но и все три столбца, где в последнем столбце есть случайные значения, которые я получаю из numpy.random.sample.Выбор уникальных случайных значений из третьего столбца массива в python
EDIT: По уникальным значениям я имею в виду, что я хочу выбрать случайные значения, которые появляются только один раз. Так что если у меня был массив:
array = [[0, 6, 2]
[5, 3, 9]
[3, 7, 1]
[5, 3, 2]
[3, 1, 1]
[5, 2, 8]]
И я хотел выбрать 4 значения третьего столбца, я хочу, чтобы получить что-то вроде new_array_1 из:
new_array_1 = [[5, 3, 9]
[3, 7, 1]
[5, 3, 2]
[5, 2, 8]]
Но я не хочу что-то вроде new_array_2, где два значения в 3-м столбце одинаковы:
new_array_2 = [[5, 3, 9]
[3, 7, 1]
[5, 3, 2]
[3, 1, 1]]
у меня есть код, чтобы выбрать случайные значения, но без критерия, что они не должны быть дубликатами в третьей колонке.
samplesize = 100
rand_sortedlist = sortedlist[np.random.randint(len(sortedlist), size = sample_size),:]]
Я пытаюсь применять этот критерий, делая что-то вроде этого
array_index = where(array[:,2] == sample(SelectionWeight, sample_size))
Но я не уверен, если я нахожусь на правильном пути. Любая помощь будет принята с благодарностью!
Я не уверен, что вы имеете в виду, когда говорите: «Я хотел бы взять образец уникальных значений ** (без дубликатов) **». Вы хотите исключить любые значения из выборки, если они появляются более одного раза? Или вы хотите выбрать из списка, в котором все элементы уникальны? Или вы хотите попробовать без замены, так что случайные выборки никогда не дублируются? Или какая-то комбинация? Некоторые примеры данных помогут. – Brionius
Включает ли третий столбец все числа от 0 или 1 до максимума, с некоторыми дубликатами, или есть пробелы в последовательности? –