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

如何解决运行代码时报TypeError: _append_dispatcher()缺少'values'参数错误

报错原因与解决方案

核心报错原因

  • np.append()的官方要求语法为np.append(arr, values, axis=None),你在循环内调用该函数时仅传入了待追加的training_set_scaled切片,缺少第一个必填参数「待追加元素的原数组」,直接触发参数缺失报错。
  • 额外逻辑错误:你将数组转换、维度重塑的操作写在了循环内部,第一次循环执行时X_train仅包含1组60个元素的一维数据,调用X_train.shape[1]会直接触发维度不匹配报错。

修正后的代码

你初始化的X_train、y_train本身是列表,直接使用列表的append()方法性能更高、也不会出现参数传错问题,修正后代码如下:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.preprocessing import MinMaxScaler

# 此处保留你原本初始化training_set_scaled的相关逻辑
X_train = []
y_train = []
# 循环内仅向列表追加元素,不做数组转换和变形操作
for i in range(60, 2035):
    X_train.append(training_set_scaled[i-60:i, 0])
    y_train.append(training_set_scaled[i, 0])
# 循环结束后统一转换为numpy数组
X_train, y_train = np.array(X_train), np.array(y_train)
# 统一变形为时序模型所需的三维格式:(样本数, 时间步, 特征数)
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))

补充说明

如果坚持要使用np.append()实现,正确写法为X_train = np.append(X_train, training_set_scaled[i-60:i, 0]),但该方法会在每次调用时重新创建数组,性能远低于先用列表存储数据、循环结束后统一转数组的实现方式,不推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:24:03