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

如何将形状为(2,2,3)的NumPy数组指定维度展平为(2,6)?

你遇到的问题是flatten()会将数组所有维度完全展开为一维,而你需要的是仅合并后两个维度、保留第一个维度不变,以下是常用的实现方案:

实现方法

  • 方法1:reshape方法(最推荐,简单高效)
    只需指定保留第一个维度长度为2,剩余维度自动合并即可,写法如下:
import numpy as np
# 原始数组
X = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
# 转换为(2, 6)形状
X = X.reshape(2, -1)

其中-1会自动根据数组总元素数计算对应维度的长度,无需手动计算2*3=6,适配性更强。

  • 方法2:按指定维度拼接
    如果需要更明确的子数组拼接逻辑,可以使用np.concatenate实现:
X = np.concatenate(X, axis=1)

该写法会把第一维度下的每一个子数组沿着第二个维度拼接,最终得到目标结构。

  • 方法3:自定义展平逻辑(仅适合复杂场景)
    如果后续有更复杂的子数组处理需求,可以使用np.apply_along_axis实现:
X = np.apply_along_axis(lambda x: x.flatten(), 1, X).reshape(2, -1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 21:21:03