关于“将数组堆叠到一个数组”的Python编码问题
我有一个简单的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]]])