用numpy从均匀分布中画出[0,1]的浮点数

2024-04-26 02:41:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从一个统一的分布中提取浮点数。在

Numpy提供numpy.random.制服. 在

import numpy as np
sample = np.random.uniform (0, 1, size = (N,) + (2,) + (2,) * K)

但是,此模块在半开区间[0,1]上生成值。在

如何从均匀分布中绘制[0,1]的浮点数?在

谢谢。在


Tags: 模块sampleimportnumpysizeasnp绘制
3条回答

来自标准Pythonrandom.uniform documentation

The end-point value b may or may not be included in the range depending on floating-point rounding in the equation a + (b-a) * random().

所以基本上,端点的包含严格基于所使用的浮点取整方案。因此,要包含1.0,需要定义操作所需的精度,并相应地舍入随机数。如果没有为您的问题定义精度,可以使用numpy.nextafter。它的用法已被前面的answer覆盖。在

random_integers在闭合间隔上生成整数。所以,如果你能把你的实际问题改写成使用整数,你就万事大吉了。否则,您可以考虑1./MAX_INT的粒度是否足以解决您的问题。在

不管你是从(0,1)还是[0,1]或[0,1]或(0,1)中画出均匀分布的数字,这并不重要。因为得到0或1的概率是零。在

相关问题 更多 >