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

解决np.random.randint运行时报ValueError: low >= high问题

错误原因
  • 你遇到的ValueError: low >= high中文含义为值错误:下限值大于等于上限值
  • 该报错触发自np.random.randint(0, cells.shape[0], 1),numpy的randint方法要求传入的上限参数必须严格大于下限参数,此处说明你的cells数组第一维度长度为0,也就是数组是空的,导致传入的上限值等于下限值0,不符合参数要求。
解决方法
  1. 首先排查数据集加载逻辑,确认cells和labels数组是否被正确读取、赋值,可先运行下方代码验证数组长度:
# 调试用代码,确认数组非空
print(f"cells数组样本数:{cells.shape[0]}")
print(f"labels数组样本数:{len(labels)}")

如果输出的cells样本数为0,说明数据集读取路径错误、筛选条件错误导致结果为空,需要修正数据加载代码。

  1. 确认数据集正常后,可对原可视化代码做兼容性修改,避免样本数不足49时也能正常运行,同时修正原代码里的拼写错误(Unifected应为Uninfected):
plt.figure(1 , figsize = (15 , 9))
n = 0 
# 取样本数和49的较小值,避免样本不足时报错
sample_count = min(49, cells.shape[0])
for i in range(sample_count):
    n += 1 
    r = np.random.randint(0 , cells.shape[0] , 1)
    plt.subplot(7 , 7 , n)
    plt.subplots_adjust(hspace = 0.5 , wspace = 0.5)
    plt.imshow(cells[r[0]])
    plt.title('{} : {}'.format('感染' if labels[r[0]] == 1 else '未感染' ,
                               labels[r[0]]) )
    plt.xticks([]) , plt.yticks([])
    
plt.show()

内容的提问来源于stack exchange,提问作者Muhammad Muttaqin - I4II7I38

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:30:02