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

如何堆叠多维数组的所有排列组合并生成独立数组

实现方法

先补充导入itertools库,然后遍历全排列列表,对每个排列执行np.hstack堆叠,最后通过动态命名生成tt_0到tt_23这些独立变量:

import numpy as np
import itertools

# 生成原始数组
a = np.random.rand(63, 1, 4)
b = np.random.rand(63, 1, 4)
c = np.random.rand(63, 1, 4)
d = np.random.rand(63, 1, 4)

combined_array = [a, b, c, d]
# 生成4个数组的全排列列表,共24个结果
permutated_list = list(itertools.permutations(combined_array))

# 遍历每个排列,堆叠后生成独立变量
for idx, perm in enumerate(permutated_list):
    # 对当前排列里的数组执行水平堆叠
    stacked_arr = np.hstack(perm)
    # 动态创建tt_0到tt_23全局变量
    globals()[f'tt_{idx}'] = stacked_arr

补充说明

  • itertools.permutations会生成4个元素的所有全排列,总数为4! = 24,刚好匹配需求的数组数量
  • 每个原始数组形状为(63,1,4),经过np.hstack堆叠后,结果数组形状为(63,4,4)(第二维度从1合并为4)
  • 如果不想用全局变量(避免污染命名空间),可以改用字典存储,更安全:
stacked_arrays = {}
for idx, perm in enumerate(permutated_list):
    stacked_arrays[f'tt_{idx}'] = np.hstack(perm)

# 访问方式示例:stacked_arrays['tt_0']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:10:51