Ненужный случайный выбор кортежей

У меня возникли проблемы с созданием массива случайных вариантов, где выбор является кортежем.

Я получаю ошибку: 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)) 

2 Solutions collect form web for “Ненужный случайный выбор кортежей”

Используйте choice чтобы выбрать индексы 1dim в массиве, а затем проиндексируйте его.

В приведенном примере только количество возможных вариантов влияет на характер выбора, а не на фактические значения (0, 255). Выбор индексов – это choice 1dim, который знает, как обращаться.

 choices = numpy.array([[0,0,0],[255,255,255]]) idx = numpy.random.choice(len(choices),4) choices[idx] 

Просто добавив этот ответ, чтобы дать ответ на non-numpy :

 choices = ((0,0,0),(255,255,255)) from random import choice print tuple(choice(choices) for _ in range(4)) 
  • Случайное семя NumPy производит разные случайные числа
  • Сделать соглашения по PRNG по всему программному обеспечению
  • Библиотека pycrypto Python для генерации случайных чисел vs os.urandom
  • Как предотвратить повторные случайные значения?
  • Выбор случайных значений из словаря
  • Случайное число в диапазоне от 1 до sys.maxsize всегда 1 mod 2 ^ 10
  • Существует ли распределение случайных чисел, которое подчиняется Закону Бенфорда?
  • Создайте случайную дату между двумя другими датами
  • Python - лучший язык программирования в мире.