如何"随机"选择具有指定偏差的数字指向特定数字

b10*_*ard 3 python numpy scipy

如何生成具有指定偏差的随机数到一个数字.例如,我如何在两个数字1和2之间选择,偏向90%偏向1.我能想出的最好的是......

import random

print random.choice([1, 1, 1, 1, 1, 1, 1, 1, 1, 2])
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?我展示的方法在简单的例子中工作,但最终我将不得不做更复杂的选择,具有非常特殊的偏差(例如37.65%偏差),这需要很长的列表.

编辑:我应该补充说,我被困在numpy 1.6上,所以我不能使用numpy.random.choice.

unu*_*tbu 10

np.random.choice有一个p参数,您可以用它来指定选择的概率:

np.random.choice([1,2], p=[0.9, 0.1])
Run Code Online (Sandbox Code Playgroud)