如何在Python中生成[-1,1]区间内的N个随机浮点数?
在Python中生成[-1, +1]区间的浮点随机数方案
基础Python标准库替代方案
如果random.uniform()对你不起作用,可借助random.random()做区间转换:将[0,1)区间的随机数放大2倍后减1,就能得到[-1,1)区间的结果(几乎完全覆盖目标区间)。生成1000个随机数的代码如下:
import random count = 1000 random_nums = [2 * random.random() - 1 for _ in range(count)]
验证random.uniform()的正确用法
其实random.uniform(-1, 1)本身是可以生成[-1, +1]区间随机数的,可能是你调用方式有误?生成批量数的正确写法是:
import random count = 1000 random_nums = [random.uniform(-1, 1) for _ in range(count)]
高效生成大量随机数(用NumPy)
如果需要生成上万级别的随机数,用NumPy会比纯Python循环高效得多:
import numpy as np count = 1000 # 直接生成NumPy数组 random_nums = np.random.uniform(-1, 1, size=count) # 转成普通Python列表(可选) random_nums_list = random_nums.tolist()
也可以用np.random.rand()做区间转换:
random_nums = 2 * np.random.rand(count) - 1
内容的提问来源于stack exchange,提问作者Prince Alex
相关产品推荐
相关产品推荐

