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

‘index 0 is out of bounds for axis 0 with size 0’错误解析及股票预测模型代码修复方案

解决IndexError: index 0 is out of bounds for axis 0 with size 0错误

错误含义解释

这个错误直白来说就是:你试图访问一个空数组的第0个元素,但这个数组里根本没有任何数据(长度为0),所以索引0自然就超出了数组的有效范围,程序直接报错。

问题根源分析

看你的代码就能定位问题:
你初始化了pred_price = np.array([]),这是一个完全空的数组。然后在循环的day != 1分支里,直接尝试访问pred_price[0][0]等元素,但在第一次循环(day=1)时,你并没有对pred_price做任何赋值操作——也就是说,当循环走到day=2时,pred_price还是空的,这时候访问它的索引0肯定会触发越界错误。

修复方案

核心思路是:在第一次循环(day=1)时,必须先完成第一次预测,给pred_price赋值,这样后续循环才能基于这个结果继续迭代预测。

这里给你修改后的代码示例(补充了关键的预测逻辑,你需要根据自己的模型训练细节调整):

# Get price for next days:
# Get the last timestep days closing price
new_df = stock_data.filter(['Open', 'High', 'Low', 'Close'])
last_timestep_days = new_df[-time_step:].values
# 用列表存储每天的预测结果,比空数组更直观不易出错
predicted_days = []
# 复用训练时的scaler(建议训练时保存scaler,预测时直接加载,不要重新fit)
scaler = MinMaxScaler(feature_range=(0,1))
scaler.fit(new_df) # 仅第一次fit,后续用transform

for day in range(1, 6):
    # 1. 对当前时间步数据做预处理(和训练逻辑完全一致)
    scaled_data = scaler.transform(last_timestep_days)
    X_test = np.array([scaled_data])
    # 调整形状适配LSTM输入:(样本数, 时间步长, 特征数),这里特征数是4
    X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 4))
    
    # 2. 用训练好的模型做预测
    pred_price = model.predict(X_test)
    # 反归一化得到真实价格范围
    pred_price = scaler.inverse_transform(pred_price)
    predicted_days.append(pred_price[0]) # 保存当天预测结果
    
    # 3. 如果不是第一天,更新时间步数据用于下一次预测
    if day != 1:
        last_day_predicted_data = np.array(
            [round(pred_price[0][0], 2), round(pred_price[0][1], 2), round(pred_price[0][2], 2),
             round(pred_price[0][3], 2)])
        # 把预测数据加到时间步末尾,再移除最旧的一行
        last_timestep_days = np.concatenate((last_timestep_days, [last_day_predicted_data]))
        last_timestep_days = np.delete(last_timestep_days, 0, axis=0)

额外注意事项

  • 确保你的model已经完成训练,输入形状、预处理逻辑必须和训练阶段完全一致(比如归一化的scaler,最好训练时保存下来,预测时直接加载,不要重新fit,否则会导致数据分布不匹配)。
  • 如果你的模型只预测Close价格,需要调整特征处理逻辑,避免维度不匹配。
  • 用列表存储预测结果比直接操作空数组更灵活,也更容易排查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 08:32:34