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

如何将NumPy四维数组维度从(2,100,78,78)调整为(100,78,78,2)?

NumPy数组轴重排解决方案

你的数组初始定义为:

import numpy as np
my_array = np.arange(1216800).reshape(2, 100, 78, 78)

当前shape是(2, 100, 78, 78),要改成(100, 78, 78, 2),之前的交换操作完全没找对方向——你那是交换数组里局部切片的元素,根本不是调整整个轴的顺序,当然没用。

给你两个直接有效的方法:

  • 用transpose()指定轴顺序:

    my_array = my_array.transpose(1, 2, 3, 0)
    

    原数组的轴索引对应关系是:0→2,1→100,2→78,3→78。这里把轴1、2、3保持原有顺序放在前三位,把轴0(长度为2的维度)移到最后,刚好得到目标shape。

  • 用moveaxis()移动目标轴:

    my_array = np.moveaxis(my_array, 0, -1)
    

    这个方法更直观:直接把第0轴(第一个维度)移动到最后一个位置,其他轴顺序不变,结果和上面完全一致。

验证一下:执行完上面任意一行代码后,打印my_array.shape,就能看到输出是(100, 78, 78, 2)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:18:19