是否可以
修改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