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

numpy.ndarray对象无append属性报错及代码问题求助

解决'numpy.ndarray' object has no attribute 'append'报错

报错原因

你代码里的X_train或y_train在循环开始前已经被定义为numpy数组(ndarray),而numpy数组并没有append()方法——这个方法是Python原生列表(list)的专属方法,调用时自然触发报错。

解决方案

方案1:用列表存储数据,最后转numpy数组(推荐)

先初始化空列表,循环中用列表的append()添加元素,最后一次性转换为numpy数组,这种方式效率更高:

# 初始化空列表
X_train = []
y_train = []

for i in range(60,1259):
    X_train.append(training_scaled[i-60:i, 0])
    y_train.append(training_scaled[i,0])

# 转换为numpy数组
x_train,y_train = np.array(X_train),np.array(y_train)

方案2:使用numpy的np.append()函数

如果必须基于numpy数组操作,要使用numpy提供的np.append()函数,注意维护好数组的维度:

# 提前初始化符合维度要求的空numpy数组
X_train = np.empty((0, 60))  # 每行60个元素,初始0行
y_train = np.empty(0)

for i in range(60,1259):
    # 扩展X_train,需将单个样本转为二维数组后追加
    X_train = np.append(X_train, training_scaled[i-60:i, 0].reshape(1, -1), axis=0)
    # 追加y_train元素
    y_train = np.append(y_train, training_scaled[i, 0])

注意:np.append()每次都会创建新的数组,循环中频繁调用会降低性能,因此优先推荐方案1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 17:30:56