生成具有特定比率的0和1的随机数组

Am1*_*3zA 12 python random numpy

我想生成大小为N的随机数组,其中只包含0和1,但我希望我的数组在0和1之间有一些比例.例如,90%的数组为1,剩下的10%为0(但我希望这个90%沿整个阵列是随机的).

现在我有:

randomLabel = np.random.randint(2, size=numbers)
Run Code Online (Sandbox Code Playgroud)

但我无法控制0和1之间的比例.

use*_*ica 27

如果你想要一个精确的1:9比例:

nums = numpy.ones(1000)
nums[:100] = 0
numpy.random.shuffle(nums)
Run Code Online (Sandbox Code Playgroud)

如果您想要独立的10%概率:

nums = numpy.random.choice([0, 1], size=1000, p=[.1, .9])
Run Code Online (Sandbox Code Playgroud)

要么

nums = (numpy.random.rand(1000) > 0.1).astype(int)
Run Code Online (Sandbox Code Playgroud)


小智 10

您可以使用二项式分布:

np.random.binomial(n=1, p=0.9, size=[1000])
Run Code Online (Sandbox Code Playgroud)