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

如何解决股票预测特征缩放环节的TypeError与NameError代码报错问题

问题排查与解决

报错根因分析

1. 第一个报错TypeError: only integer scalar arrays can be converted to a scalar index

  • 错误来源不是你标注的数组转换行,是后续的np.reshape行参数书写错误
  • 你需要取X_train第二维的长度,正确写法是X_train.shape[1],但原代码漏写了.shape,直接写了X_train[1],这代表取X_train的第二个样本(本身是一个长度为60的数组),把数组传给reshape当维度参数,不符合参数要求就触发类型错误。

2. 第二个报错NameError: name 'indices' is not defined

  • 你修改代码时引入了完全没有提前定义过的indices变量,属于无意义修改,直接触发未定义报错,这行修改完全不需要。

修复后的完整代码

# Feature Scaling
sc = MinMaxScaler(feature_range=(0, 1))
training_set_scaled = sc.fit_transform(training_set)

# Creating a data structure with 60 time-steps and 1 output
X_train = []
y_train = []
# 优化点:不写死终止值,用数据集实际长度适配不同场景
for i in range(60, len(training_set_scaled)):
  X_train.append(training_set_scaled[i-60:i, 0])
  y_train.append(training_set_scaled[i, 0])
X_train, y_train = np.array(X_train), np.array(y_train)

# 修复reshape参数:补充.shape属性
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))

额外校验建议

  • 修复后可打印X_train.shape确认维度是否符合后续模型(如LSTM)的输入要求,正常输出应为(样本数, 60, 1)
  • 避免硬编码数据集长度,可适配不同大小的训练集,减少后续索引越界风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 15:45:04