我有一个数字数组,比如从0到8,它可能会重复出现在数组中。 我需要从这些数字中选择一个数字,一个数字出现的概率应该与它在数组中出现的次数成正比。你知道吗
这是原始数组:
([7, 0, 7, 8, 4, 4, 6, 5, 2, 6, 0, 1, 2, 3, 4, 5, 6, 7, 8])
此数组包含每个数字在数组中出现的次数:array([ 2., 1., 3., 1., 1., 4., 1., 5., 1.])
这是我试图用前面描述的方法获取一个索引(deg)的代码
tot = sum((deg))
n = np.random.uniform(0, tot)
for i in range(len(deg)):
if n < deg[i]:
return i
n = n - deg[i]
return i
我得到一个指数,2,但我不知道这个过程是否正确。你怎么说?你知道吗
您只需在原始输入上使用^{} 。由于所选索引是均匀分布的,因此选择元素的概率将自动与出现的次数成比例。不需要计算
deg
。你知道吗正如在注释中指出的,您还可以选择使用^{} ,这不仅允许您通过替换来收集多个样本,还允许您手动分配每个元素的比例。你知道吗
例如,以下三个输入应为给定种子选择相同的三个元素:
要从} :
x
转到y
和z
,请使用^{相关问题 更多 >
编程相关推荐