如何获取numpy.random.choice的索引? – Python

是否可以修改numpy.random.choice函数以使其返回所选元素的索引?

基本上,我想创建一个列表,随机选择元素而不需要替换

import numpy as np
>>> a = [1,4,1,3,2,4]
>>> np.random.choice(a)
>>> 4
>>> a
>>> [1,4]

a.remove(np.random.choice(a))将使用它遇到的值(上面的示例中的[1])删除列表的第一个元素,这可能不是所选元素(例如,[7 ]).

解决方法

这里有一种方法可以找出随机选择的元素的索引:

import random # plain random module,not numpy's
random.choice(list(enumerate(a)))[0]
=> 4      # just an example,index is 4

或者您可以在一个步骤中检索元素和索引:

random.choice(list(enumerate(a)))
=> (1,4) # just an example,index is 1 and element is 4

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。