拼接首维相同次维不同的numpy二维数组出现维度匹配错误如何解决
numpy数组横向拼接问题解决方案
报错原因
np.concatenate 默认沿**第0维(行维度)**执行拼接,要求所有输入数组除拼接轴外的其余维度完全匹配。你未手动指定拼接轴时,程序默认校验第1维(列维度)的长度是否一致,三个数组的列长度分别为17437、24131、19782,不符合匹配规则因此触发报错。
你需要的是横向拼接扩充列维度,最终得到30行、总列数为三者之和的数组,因此要手动指定拼接轴为第1维。
正确实现代码
# 导入numpy(已导入可跳过) import numpy as np # 指定沿axis=1(列维度)拼接 labels = np.concatenate((x1, x2, x3), axis=1)
你也可以使用封装了列拼接逻辑的np.hstack方法实现相同效果:
labels = np.hstack((x1, x2, x3))
结果验证
执行完成后打印labels.shape,即可得到预期输出(30, 61350)。
内容的提问来源于stack exchange,提问作者Fabio
相关产品推荐
相关产品推荐

