关于“将数组堆叠到一个数组”的Python编码问题

-1 投票
2 回答
86 浏览
提问于 2025-04-12 21:00

我有一个简单的Python编程问题,关于“把数组放进数组里”。这里我有几个数组,如下所示:

a1 = np.array([[1,1,1],[1,1,1],[1,1,1]]) 
a2 = np.array([[2,2,2],[2,2,2],[2,2,2]])
a3 = np.array([[3,3,3],[3,3,3],[3,3,3]])
a4 = np.array([[4,4,4],[4,4,4],[4,4,4]])
a5 = np.array([[5,5,5],[5,5,5],[5,5,5]])

我想要的输出是这样的:

array([[[1, 1, 1],
        [1, 1, 1],
        [1, 1, 1]],

       [[2, 2, 2],
        [2, 2, 2],
        [2, 2, 2]],

       [[3, 3, 3],
        [3, 3, 3],
        [3, 3, 3]],

       [[4, 4, 4],
        [4, 4, 4],
        [4, 4, 4]],

       [[5, 5, 5],
        [5, 5, 5],
        [5, 5, 5]]])

我想把a1到a5这些数组叠加成一个数组。

不过,我不知道怎么用循环来生成这样的输出。你能给我一些解决这个问题的思路吗?

谢谢!

2 个回答

0

这并不奇怪,要把数组叠起来,你可以使用一个叫做“stack”的函数:

np.stack([a1, a2, a3, a4, a5])

输出结果是:

array([[[1, 1, 1],
        [1, 1, 1],
        [1, 1, 1]],

       [[2, 2, 2],
        [2, 2, 2],
        [2, 2, 2]],

       [[3, 3, 3],
        [3, 3, 3],
        [3, 3, 3]],

       [[4, 4, 4],
        [4, 4, 4],
        [4, 4, 4]],

       [[5, 5, 5],
        [5, 5, 5],
        [5, 5, 5]]])

1

你还可以直接列出它们,然后转换成数组:

np.array([a1,a2, a3, a4, a5])

array([[[1, 1, 1],
        [1, 1, 1],
        [1, 1, 1]],

       [[2, 2, 2],
        [2, 2, 2],
        [2, 2, 2]],

       [[3, 3, 3],
        [3, 3, 3],
        [3, 3, 3]],

       [[4, 4, 4],
        [4, 4, 4],
        [4, 4, 4]],

       [[5, 5, 5],
        [5, 5, 5],
        [5, 5, 5]]])

撰写回答