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

如何通用实现任意偶数维NumPy数组列表的特定交错拼接功能

通用实现方案

我们可以先从你已有的切片逻辑和验证场景里提炼出统一规律:

  • 设original_size长度为k,最终大数组维度为2k,最高支持k=6即可覆盖12维需求
  • 所有子数组的第k个轴(索引从0开始计数)长度均为1,切片赋值时正是把这些子数组依次写到大数组的第k个轴的对应位置
  • 你之前验证的2维场景(k=1)沿轴1拼接、4维场景(k=2)沿轴2拼接,本质都是沿第k个轴拼接长度为1的子数组

基于这个规律,直接用np.concatenate沿第k个轴拼接parts_list即可实现全维度兼容的逻辑,完全等价于切片赋值的效果:

import numpy as np

def concat_parts(parts_list, original_size):
    k = len(original_size)
    # 沿第k个轴拼接所有子数组
    return np.concatenate(parts_list, axis=k)

多场景验证

  • 2维场景(k=1,大数组shape(x,x)):拼接轴为1,等价于np.hstack(parts_list),和你用np.block得到的结果完全一致
  • 4维场景(k=2,大数组shape(x,y,x,y)):拼接轴为2,等价于np.dstack(parts_list),和你已验证的结果一致
  • 6维场景(k=3,大数组shape(x,y,z,x,y,z)):拼接轴为3,直接拼接即可得到目标数组
  • 更高维场景:只要调整original_size的长度k,最高k=6即可支持12维数组的拼接,不需要修改逻辑

这个方案就是你参考的dstack逻辑的高维扩展:dstack是固定沿轴2拼接,本方案把拼接轴参数化为和original_size长度匹配的k,自然支持任意偶数维度的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 12:54:03