You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用NumPy生成含负数的指定区间随机数组并解决randint报错

报错原因及解决

np.random.randint的参数逻辑为:

  • 仅传入1个位置参数时,该值为上限high,默认下限low=0,返回[0, high)区间的整数
  • 传入2个位置参数时,第一个为下限low,第二个为上限high,返回[low, high)区间的整数

你此前生成的random_num范围为1020的正数,默认low=0小于high,运行正常;当`random_num`的范围调整为-1020后,可能随机得到负数,此时默认low=0大于作为high的负数,就会触发low >= high报错。

解决方法:明确传入上下限两个参数即可,示例如下(如果你的需求是生成区间为[-10, random_num)的4行2列整数数组):

import numpy as np
random_num = np.random.randint(-10,20)
arr_rand = np.random.randint(low=-10, high=random_num, size=(4,2))

如果你的需求是下限为随机的random_num,上限固定为20,调整参数顺序即可:

arr_rand = np.random.randint(low=random_num, high=20, size=(4,2))
生成指定范围的浮点随机数

首先补充说明:np.random.randn生成的是符合标准正态分布的样本,不是01的均匀分布值,01均匀分布的浮点值可以用np.random.rand生成。
不同分布的浮点随机数生成方案如下:

  • 均匀分布浮点值:直接调用np.random.uniform,指定上下限和输出尺寸即可,示例为生成[-10, 20)范围的4行2列浮点数组:
float_arr = np.random.uniform(low=-10, high=20, size=(4,2))

也可以通过基础rand方法缩放得到:

low = -10
high = 20
float_arr = np.random.rand(4,2) * (high - low) + low
  • 正态分布浮点值:调用np.random.normal,指定均值、标准差和输出尺寸即可,示例为均值为5、标准差为3的4行2列浮点数组:
float_arr = np.random.normal(loc=5, scale=3, size=(4,2))

内容的提问来源于stack exchange,提问作者tylerdjt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:36:03