我在创建一个由元组组成的随机选择数组时遇到了困难。
我遇到了错误:a必须是一维的
这是一个示例:
choices = ((0,0,0),(255,255,255))
numpy.random.choice(choices,4)
还有其他方法可以做到这一点吗?
预期结果:
从choices元组中随机选择4个元素组成的numpy数组。
((0,0,0),(0,0,0),(255,255,255),(255,255,255))
我在创建一个由元组组成的随机选择数组时遇到了困难。
我遇到了错误:a必须是一维的
这是一个示例:
choices = ((0,0,0),(255,255,255))
numpy.random.choice(choices,4)
还有其他方法可以做到这一点吗?
预期结果:
从choices元组中随机选择4个元素组成的numpy数组。
((0,0,0),(0,0,0),(255,255,255),(255,255,255))
使用choice
选择数组中的一维索引,然后对其进行索引。
在您提供的示例中,只有可能选择的数量影响选择的性质,而不是实际值(0、255)。选择索引是一维问题,choice
知道如何处理。
choices = numpy.array([[0,0,0],[255,255,255]])
idx = numpy.random.choice(len(choices),4)
choices[idx]
我只是补充一个没有使用numpy的答案:
choices = ((0,0,0),(255,255,255))
from random import choice
print tuple(choice(choices) for _ in range(4))
如果你想进行无重复采样,可以尝试:
,请注意保留原有html标签。import random
choices = ((0,0,0),(1,1,1),(2,2,2),(3,3,3))
random.sample(choices, 2)