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

Python numpy多维数组拼接如何避免扁平化得到目标结构

问题原因

调用np.append()时如果不指定axis参数,NumPy默认会先将所有输入数组扁平化处理为一维结构后再执行拼接,因此最终得到的是丢失原有维度信息的一维数组,和预期不符。
你当前持有的两个数组C1、C2维度均为(1, 2, 2),期望输出的C3维度为(2, 2, 2),核心是沿第0轴(最外层维度)完成两个数组的拼接。

可行解决方案
  • 方案1:使用通用拼接函数np.concatenate(),显式指定拼接轴为0,这是NumPy数组合并场景下最推荐的写法:
import numpy as np

C1 = np.array([[[0, 1],[0,2]]])
C2 = np.array([[[1, 1],[2,2]]])

# 沿第0轴拼接
C3 = np.concatenate([C1, C2], axis=0)

# 验证输出
print(C3.shape) # 输出(2, 2, 2)
print(C3)
# 打印结果:
# [[[0 1]
#   [0 2]]
#
#  [[1 1]
#   [2 2]]]
  • 方案2:如果要继续使用np.append(),必须显式传入axis=0参数,不能省略该参数:
C3 = np.append(C1, C2, axis=0)

注:你原有测试代码里定义的arC1、arC2两个空列表全程没有参与运算,属于冗余代码,可以直接删除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:57:27