python - 具有特定比例的二进制随机数组?

标签 python arrays numpy random

生成具有特定比例的随机数的 0 和 1 的有效方法(可能是用 Matlab 术语向量化)是什么?特别是 Numpy?

因为我的情况对于 1/3 是特殊的,所以我的代码是:

import numpy as np 
a=np.mod(np.multiply(np.random.randomintegers(0,2,size)),3)

但是至少对于 K/N K 和 N 是自然数的情况,是否有任何内置函数可以更有效地处理这个问题?

最佳答案

另一种方法,使用 np.random.choice :

>>> np.random.choice([0, 1], size=(10,), p=[1./3, 2./3])
array([0, 1, 1, 1, 1, 0, 0, 0, 0, 0])

关于python - 具有特定比例的二进制随机数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50367451/

相关文章:

python - 在 O(n) 的排序矩阵中查找小于目标的 # 元素的算法?

javascript - 如何从 JS 数组中删除空对象

c - 使用预先排序的分区对数组进行排序

python - python 检测重复元素

python - 用列表的值替换 numpy 索引数组的值

python - Numpy loadtxt 编码

python - ElementTree:寻找没有元素的 child

python - 如果我有两个模型,模型 A 和模型 B,并且我希望模型 A 的字段平均值为模型 B 中字段的值

python - fillna 没有给出预期的结果

python - f2py 不适用于树冠