Numpy随机选择元组

时间:2014-05-03 14:49:55

标签: python numpy random

我无法创建随机选择数组,其中选择是一个元组。

我收到错误: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))

3 个答案:

答案 0 :(得分:24)

使用choice在数组中选择1dim indices ,然后将其编入索引。

在您提供的示例中,只有可能选择的数字会影响选择的性质,而不会影响实际值(0,255)。选择索引是1dim问题choice知道如何处理。

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

答案 1 :(得分:5)

只需添加此答案即可提供基于non-numpy的答案:

choices = ((0,0,0),(255,255,255))

from random import choice

print tuple(choice(choices) for _ in range(4))

答案 2 :(得分:0)

如果您想专门样品而不更换样品,可以尝试:

import random
choices = ((0,0,0),(1,1,1),(2,2,2),(3,3,3))
random.sample(choices, 2)