Ненужный случайный выбор кортежей
У меня возникли проблемы с созданием массива случайных вариантов, где выбор является кортежем.
Я получаю сообщение об ошибке: a must be 1-dimensional
Вот пример:
choices = ((0,0,0),(255,255,255))
numpy.random.choice(choices,4)
Есть ли другой способ сделать это?
Ожидаемый результат:
массив numpy, состоящий из 4 элементов, случайно выбранных из кортежа выбора.
((0,0,0),(0,0,0),(255,255,255),(255,255,255))
Ответы
Ответ 1
Используйте choice
, чтобы выбрать индексы 1dim в массиве, затем проиндексируйте его.
В приведенном вами примере только число возможных вариантов влияет на характер выбора, а не на фактические значения (0, 255). Выбор индексов - это проблема 1dim choice
знает, как обращаться.
choices = numpy.array([[0,0,0],[255,255,255]])
idx = numpy.random.choice(len(choices),4)
choices[idx]
Ответ 2
Просто добавив этот ответ, чтобы предоставить ответ non-numpy
:
choices = ((0,0,0),(255,255,255))
from random import choice
print tuple(choice(choices) for _ in range(4))