是否可以修改 numpy.random.choice 函数以使其返回所选元素的索引?
基本上,我想创建一个列表并随机选择元素而不进行替换
import numpy as np
>>> a = [1,4,1,3,3,2,1,4]
>>> np.random.choice(a)
>>> 4
>>> a
>>> [1,4,1,3,3,2,1,4]
a.remove(np.random.choice(a))
将删除列表中具有该值的第一个元素(a[1]
在上面的示例中),这可能不是所选元素(例如,a[7]
).
关于你的第一个问题,你可以以相反的方式工作,从数组的索引中随机选择a
然后获取值。
>>> a = [1,4,1,3,3,2,1,4]
>>> a = np.array(a)
>>> random.choice(arange(a.size))
6
>>> a[6]
但如果你只需要随机样本而不需要替换,replace=False
会做。不记得什么时候第一次添加到random.choice
,可能是 1.7.0。所以如果你已经很老了numpy
它可能不起作用。请记住默认值是replace=True
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)