gpt4 book ai didi

python - 使用 np.random.uniform 最接近 (1,0) 的端点

转载 作者:太空宇宙 更新时间:2023-11-04 04:46:49 25 4
gpt4 key购买 nike

-可以在区间 (0, 1] 上抽取随机数,即包括 1 使用:

import numpy as np
r = np.random.uniform(low=0.0, high=1.0, size=10)

但是,我想在区间 (0, 1) 上生成数字,即不包括 1 和 0。类似于:

r = np.random.uniform(low=0.0, high=1.0 - 2**-16, size=10)

可行,但理论上我能达到 1 和 0 有多接近,有没有办法确保我能像接近 0 一样接近 1?

最佳答案

首先,请注意 np.random.uniform[low, high) 上返回均匀分布的随机数,即包括 low 但不是。所以我假设您想从样本中排除 0,而不是 1

就您实际上接近零的程度而言,这受到计算机算术精度的限制。假设 NumPy 使用的 IEEE float ,最接近但大于零的 float 由下式给出:

>>> np.nextafter(0.0, 1.0) # Closest to 0.0 in direction of 1.0
5e-324

所以要在 (0, 1) 上生成数字,您可以这样做:

>>> np.random.uniform(low=np.nextafter(0.0, 1.0), high=1.0, size=10)

关于python - 使用 np.random.uniform 最接近 (1,0) 的端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49395882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com