python - 如何使用numpy在分段间隔上生成随机数

标签 python numpy

我在 python 中使用 numpy 模块来生成随机数。当我需要生成[a,b]等连续区间内的随机数时,我会使用

(b-a)*np.random.rand(1)+a

但是现在我需要在[a,b]和[c,d]区间生成一个均匀的随机数,怎么办?

我想生成一个随机数,它在所有间隔的长度上都是均匀的。我不是等概率选择一个区间,然后在区间内生成一个随机数。如果[a,b]和[c,d]长度相等,这种使用没有问题,但是当区间长度不相等时,这种方法产生的随机数就不是完全均匀的。

最佳答案

你可以做类似的事情

a,b,c,d = 1,2,7,9
N = 10
r = np.random.uniform(a-b,d-c,N)
r += np.where(r<0,b,c)
r
# array([7.30557415, 7.42185479, 1.48986144, 7.95916547, 1.30422703,
#        8.79749665, 8.19329762, 8.72669862, 1.88426196, 8.33789181])

关于python - 如何使用numpy在分段间隔上生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56230232/

相关文章:

python - 允许 zip 函数将 1D 映射到 2D 数组

python - 有没有办法应用一个 numpy 函数,该函数将两个一维数组作为两个二维数组的每一行的参数?

python - Numpy 高级索引

python - 在 Theano 中定义一个带循环的函数

python - 缺少类型命名空间 suds SOAP python

python - 如何参数化测试,从参数化 fixture 中获取参数?

python - 简单的 Python 异步。预编译器?

python - 使用日期时间和使用 python 操作日期字符串

python - 在 Python 中使用 numpy/scipy 进行分箱的矢量化方法

python - 通过增加日期时间进行 Numpy 排序