如何检索随np.random.choice随机选择的列表中的非唯一元素的索引?

时间:2016-12-02 12:07:09

标签: python numpy

如果我有一个如下列表:

a = [1, 2, 3, 3, 4, 5]

我想使用np.random.choice从这个列表中选择一个随机元素,让我们说我得到的值是3,我应该如何获得元素3的正确索引,而不仅仅是自动出现的前三个?

我知道有关唯一值的列表,我可以使用.index来获取它,但不知道如何处理非唯一值。

谢谢!

1 个答案:

答案 0 :(得分:6)

当然,你不能。如果您需要拾取值的索引,则首先选择随机索引,然后检索所需的列表元素:

index = random.randrange(0, len(a))
value = a[index]

请注意,即使元素是唯一的,使用.index方法也不是那么好,因为该方法必须在列表上执行线性搜索(即将每个元素与您的值进行比较,直到找到它为止)