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

如何在Python中合并多个NumPy数组 解决ndarray无append属性报错

NumPy多维度数组合并报错解决方案

错误原因

NumPy的ndarray数组对象没有内置append实例方法,该方法是Python原生列表的独有方法,因此直接调用数组的append属性会触发AttributeError。
即使你改用NumPy提供的全局np.append方法,也不建议在循环中反复调用:该方法每次执行都会重新分配整块内存存储新数组,数据量较大时运行效率极低。

正确实现方案

你所有待合并的数组第二维均为9,满足垂直拼接的维度要求,最优方案是先将所有加载的数组存入Python列表,最后一次性调用np.concatenate完成拼接,无需提前预估数组总长度,也没有冗余的内存开销。
修正后的代码如下:

import os
import numpy as np

# 切换到目标文件夹
os.chdir("E:/pythoncode/feature") 
# 筛选所有npy后缀的文件
fnames_transfer = [x for x in os.listdir() if x.endswith(".npy")]
# 临时列表存储所有加载的数组
all_arrays = []
for fname in fnames_transfer:
    data = np.load(fname)
    all_arrays.append(data)
# 按行拼接所有数组,axis=0代表沿第一维度拼接
feature = np.concatenate(all_arrays, axis=0)

补充说明

如果你坚持要使用append写法实现(仅作演示,不推荐生产环境使用),正确语法如下:

# 注意每次要给feature重新赋值,且必须指定拼接维度
feature = np.append(feature, data, axis=0)

该写法需要提前确认初始feature的长度足够且后续不会残留多余初始化的0值,否则会出现数据错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:09:02