我们说我有一份我正在投资的国家名单:
vkCmdResetEvent
如何将权重随机化到这些国家,这些国家总计达到100%,基本上 - 我希望对我的投资进行优化测试:
Angola Croatia Denmark Germany ...
随机化背后的逻辑非常简单,但我想知道是否有一种简单的方法可以做到这一点?我当前的逻辑是,为所有这些逻辑分配一个随机数,取所有random的总和,取分配的数字除以总数。
如何正确计算这些权重,并使用Pandas DataFrame添加这些权重的新行?我该如何设置一个for-all语句?
答案 0 :(得分:1)
可以在不使用numpy
或pandas
的情况下实现此目的。您可以使用random
包简单地生成N个随机数,然后对它们进行标准化(将每个数字除以所有生成的数字的总和)。这将生成[0,1]间隔中的数字列表。如果您需要将它们缩放到[0,100]间隔,只需将数字乘以100
。
示例:
>>> import random
>>> n = 10
>>> weights = [random.random() for _ in range(n)]
>>> sum_weights = sum(weights)
>>> weights = [100*w/sum_weights for w in weights]
>>> print(weights)
[9.341865975454088,
12.351871555212776,
11.613836128975514,
9.37242716105095,
7.74809967908834,
9.239611881353285,
5.432249328415935,
11.384334820466387,
13.436859772362507,
10.07884369762022]