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

使用numpy.concatenate拼接数组时遇零维数组无法拼接错误求助

问题

执行以下代码时触发错误:

print("****SHAPE***",input_feature_train.shape,target_feature_train_df_reshaped.shape)
train_arr = np.concatenate([input_feature_train,target_feature_train_df_reshaped],axis=1)

错误输出:

****SHAPE*** (14599, 234) (14599, 1)
回溯(最近的调用最后):
  line 87, in initiate_data_transformation
    train_arr = np.concatenate([input_feature_train,target_feature_train_df_reshaped],axis=1)
  File "<__array_function__ internals>", line 200, in concatenate
ValueError: 零维数组无法拼接

打印的数组形状显示为(14599, 234)和(14599, 1),但调用np.concatenate(axis=1)时却报错“零维数组无法拼接”,需排查解决。

排查与解决方法

1. 确认数组实际类型与维度

报错提示存在零维数组,说明打印的shape可能有误导性——其中一个变量大概率不是真正的二维numpy数组,可能是Pandas Series、标量或维度异常的对象。先执行以下代码验证:

print("输入特征类型/维度:", type(input_feature_train), np.ndim(input_feature_train))
print("目标特征类型/维度:", type(target_feature_train_df_reshaped), np.ndim(target_feature_train_df_reshaped))

2. 统一转换为标准二维numpy数组

如果其中一个变量是Pandas对象(如Series),先转换为numpy数组,再强制保证二维结构:

# 处理输入特征
input_arr = input_feature_train.to_numpy() if hasattr(input_feature_train, 'to_numpy') else input_feature_train
# 处理目标特征,确保是(n_samples, 1)的二维结构
target_arr = target_feature_train_df_reshaped.to_numpy().reshape(-1, 1) if hasattr(target_feature_train_df_reshaped, 'to_numpy') else target_feature_train_df_reshaped.reshape(-1, 1)
# 执行拼接
train_arr = np.concatenate([input_arr, target_arr], axis=1)

3. 用更灵活的拼接函数替代

np.hstack会自动处理一维转二维的场景,比np.concatenate更适配这种情况:

train_arr = np.hstack([input_feature_train, target_feature_train_df_reshaped])

4. 验证拼接结果

完成拼接后,打印形状确认是否符合预期:

print("拼接后数组形状:", train_arr.shape)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 13:42:34