从一个简单的numpy数组开始,例如:
a = np.array([1,1,0,2,1,0])
我的目标是迭代地从中减去值,直到某个阈值。例如,考虑a
包括用户数。在这种情况下,5个用户分配有:
d = a/a.sum()
现在我想从这个初始分布中减去4个用户,在结果数组中始终保持值>;0。我可以构造一个随机数组来减去:
b = np.random.multinomial(4,d)
产生(在一次运行中):
array([0, 1, 0, 3, 0, 0])
类似a-b
的结果导致:
array([ 1, 0, 0, -1, 1, 0])
如何约束生成的数组在生成的(a-b)
操作中从不产生负值?到目前为止,我从另一个角度思考,产生一个随机分布:
r = np.random.multinomial(total users - deleted users,d)
根据用户的初始分布d
,但是由于我必须对向量应用一些度量,因此后一种方法的结果可能会有所不同。你知道吗
如果您想随机地将
a.sum()
递减n
,而a
的任何元素都不会变为负数,这是一种方法:相关问题 更多 >
编程相关推荐