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

Python转换numpy数组触发VisibleDeprecationWarning该如何解决?

告警触发原因

你遇到的VisibleDeprecationWarning告警核心是代码逻辑错误导致待转换的嵌套列表长度不统一,具体触发逻辑如下:

  • 生成训练数据的循环中切片语法错误:你写的train_data[i-60:, 0]是取从索引i-60到train_data末尾的所有数据,随着循环变量i不断增大,每次切片得到的序列长度会持续缩短,最终x_train列表里的每个子序列长度都不一样,属于Numpy定义的「参差不齐的嵌套序列」,无法直接转换为默认的规整多维数组,因此触发弃用告警。
  • 补充说明:Numpy新版本已经弃用了自动将长短不一的嵌套序列转换为object类型数组的逻辑,如果确实需要生成这类数组必须显式指定dtype=object,但你的场景属于代码写错,完全不需要使用object类型。
解决方法

按如下步骤修改代码即可消除告警,同时修正时序预测数据集构造的逻辑错误:

  • 修正x_train的切片逻辑,改为取固定长度的60个时间步数据:
# 把原有x_train.append行替换为下面的代码
x_train.append(train_data[i-60:i, 0])
  • 修正y_train的取值逻辑,你原有代码所有y_train值都固定为同一个数,不符合时序预测要求,改为取i位置的数值作为预测目标:
# 把原有y_train.append行替换为下面的代码
y_train.append(train_data[i, 0])
  • 转换numpy数组并适配LSTM输入维度要求:
# 此时x_train所有子序列长度都是60,转换为numpy数组不会触发告警
x_train, y_train = np.array(x_train), np.array(y_train)
# LSTM要求输入为三维格式:[样本数, 时间步长, 特征数],补充特征维度
x_train = np.reshape(x_train, (x_train.shape[0], x_train.shape[1], 1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:24:04